20090426

Недостаточно места для обновления дистрибутива?

Ну поскольку на днях вышла новая убунту, и народ сейчас активно обновляется, то многие, как и я, обнаружат, что для обновления системы на диске недостаточно места.

У меня разбиение диска такое: корневой раздел / 10 гигабайт, на нём же /var/cache/. Обычно свободно около 1 гигабайта (поудаляв редко используемое, можно освободить 2 ГБ). Для обновления система затребовала больше 4,5 гигабайт — новые пакеты нужно куда-то скачать. Что делать, не переразбивать же диск только ради апгрейда? Тем более, что всё остальное время мне такого / вполне хватает.

Есть выход. Дополнительное место нужно для временного размещения скачанных пакетов. Потом оно будет не нужно (обычные обновления системы не требуют многих гигабайт). В Debian/Ubuntu скачанные пакеты помещаются в /var/cache/apt/archives/. И я просто временно разместил этот каталог на внешнем диске, где места достаточно.

Дополнение: ниже описано, как поступил я. Как подсказывают в комментариях, можно было поступить гораздо проще:
$ sudo mount --bind /каталог/в/разделе/где/много/места /var/cache/apt/archives
Признаюсь, что можно сделать --bind, просто забыл. В следующий раз попробую.


Действовал же так:

1) Сделал резервную копию текущего состояния archives/:
$ sudo rsync -avz --delete /var/cache/apt/archives ~/backup/var-cache-apt-archives

2) На диске, где вдоволь свободного места создал файл, в котором собираюсь разместить временный раздел под архивы (6 ГБ):
$ dd if=/dev/zero of=aptcache.img bs=1k count=6291456

3) Отформатировал этот файл как обычный раздел:
$ mke2fs aptcache.img

4) Подключил этот этот файл на место /var/cache/apt/archives/ (скрыв этим настоящий archives/):
$ sudo mount -o loop aptcache.img /var/cache/apt/archives/

5) Скопировал в него всё из старых archives/ (необязательно, там просто архив уже скачанных пакетов):
$ sudo rsync -avz ~/backup/var-cache-apt-archives/archives/ /var/cache/apt/archives/

6) Проверяю сколько свободного места есть, вижу, что теперь достаточно:
$ df -h / /var/cache/apt/archives/
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 9.5G 7.0G 2.1G 78% /
/dev/loop0 6.0G 12M 5.6G 1% /var/cache/apt/archives

Далее обновляю систему как обычно. После обновления системы можно сделать apt-get clean (удалить скачанные пакеты) и отключить временный /var/cache/apt/archives/.