Автор Тема: временное перемонтирование при нехватке места на диске  (Прочитано 5825 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн takecare

  • Новичок
  • **
  • Автор темы
  • Сообщений: 24
Так случилось, что на / мало места, чтобы сделать aptitude safe-upgrade (aptitude взят за пример, чтобы было наглядно, в принципе, проблема относится к любому приложению). /usr смонтирован на другом разделе этого же диска, и там места достаточно. Я попытался решить проблему с помощью внешнего диска (sdb), на котором места вообще немерено:
$ sudo mount -B /var/cache/apt/archive /media/sdb1/apt
(в этом каталоге apt складирует загруженные deb-архивы)
Кроме того, сделал
$ sudo mount -B /tmp /media/sdb1/tmp
Не помогло: в процессе апгрейда место на / стремительно исчезло, и он (процесс) оборвался на середине (из 24 загруженных deb-пакетов установилось только 8).
Подскажите, как правильно задействовать временный внешний диск, чтобы можно было закончить процесс апгрейда (после него, естественно, сделаю aptitude clean). Советы типа "удали логи и т.п. с корневого раздела" не принимаются: вопрос ставится именно так, как он сформулирован в теме.

Оффлайн vmf

  • Местный
  • *****
  • Сообщений: 587
  • vmf000@yabber.ru
после /usr самый объемный /var
Можно перенести весь /var, а не только кэш apt.

Оффлайн takecare

  • Новичок
  • **
  • Автор темы
  • Сообщений: 24
vmf, я не хочу ПЕРЕносить что-либо с корневого раздела, я бы хотел ВРЕМЕННО заставить систему думать, что какие-то директории этого раздела находятся на диске с достаточным объемом свободного пространства, чтобы использующие эти директории в качестве рабочих программы могли работать. По окончании работы программ все восстанавливается, как было. Проблема в том, что указанные выше команды не заставляют скачанные файлы ФИЗИЧЕСКИ размещаться на диске sdb, на самом деле они записываются на sda (где смонтирован корень и где мало места). А надо, чтобы все временные файлы размещались на sdb.

Оффлайн vmf

  • Местный
  • *****
  • Сообщений: 587
  • vmf000@yabber.ru
я не хочу ПЕРЕносить что-либо с корневого раздела,
Место на файловой системе освободить всё равно как-то надо. Подмонтирование каталога не увеличивает размер корневой ФС. Если apt при установке пакета пишет файл, например, в /bin, то подключение дополнительного /tmp не поможет.
Когда монтируете /var/cache/apt/archive его содержимое предварительно переносите на сменный?

« Последнее редактирование: Январь 21, 2011, 09:36:37 от vmf »

Оффлайн maksipes

  • Global Moderator
  • *****
  • Сообщений: 116
Я попытался решить проблему с помощью внешнего диска (sdb), на котором места вообще немерено:
$ sudo mount -B /var/cache/apt/archive /media/sdb1/apt
(в этом каталоге apt складирует загруженные deb-архивы)
Кроме того, сделал
$ sudo mount -B /tmp /media/sdb1/tmp
Цитировать (выделенное)
А может быть, было всё наоборот:
Погода была
Прекрасная,
Принцесса была
Ужасная.
Монтируйте sdb как /var/cache/apt/archive.

Оффлайн Feduka

  • Активист
  • ****
  • Сообщений: 428
  • Меняю путина на Ходорковского
man mount обычно сильно помогает. Попытка "перемонтировать" с параметром -B (ну то есть --bind) вполне понятна, но непохвальна. Почему-то неочевидно (уж для меня во всяком случае) что "новое место" находится на другом физическом диске (разделе). Я даже допускаю (но тут это не было написано), что в /media/sdb1 действительно был предварительно смонтирован отдельный физический раздел. Но --bind тупо подменяет каталоги. А что он знает о физических разделах? Наверное, ничего... (After this call the same contents is accessible in two places. - так man говорит.)
Вот такое вот оно. Мое IMHO. Я бы монтировал все-таки как-то /dev/sdb1 куда надо. Или может быть (если с похмелья или от скуки) на этом самом sdb1 понаделал файлов и монтировал их куда хочется через loop, хоть это и изврат большой в данном случае.

А вообще-то я один раз задумался на эту тему, и решил для себя, что LVM - это удобно. Я всегда оставляю резерв свободного места в группе томов, которое при необходимости легко можно прибавить к любому логическому тому. Можно у одного отнять, а другому добавить. А можно и новый физический раздел добавить в группу и использовать как угодно. А потом за ненадобностью изъять.
« Последнее редактирование: Январь 21, 2011, 10:30:29 от Feduka »
2:5020/655.11

Оффлайн takecare

  • Новичок
  • **
  • Автор темы
  • Сообщений: 24
Действительно, надо было поменять местами аргументы mount. Ввел в заблуждение man mount:
mount -B olddir newdir
У меня ведь, на первый взгляд, /var/cache/apt/archives - старая директория, а /media/sdb1/apt - новая

LVM - классная штука, но, боюсь, не годится для USB-диска. Он ведь сейчас подключен, а через час - отключен. А уменьшать размер LVM тома не так просто, как увеличивать.

Заодно, может кто подскажет, какие директории используются apt в качестве рабочих? Man dpkg сообщает, что $TMPDIR, но у меня эта переменная не установлена...

Оффлайн Feduka

  • Активист
  • ****
  • Сообщений: 428
  • Меняю путина на Ходорковского
Действительно, надо было поменять местами аргументы mount. Ввел в заблуждение man mount:
mount -B olddir newdir
У меня ведь, на первый взгляд, /var/cache/apt/archives - старая директория, а /media/sdb1/apt - новая

LVM - классная штука, но, боюсь, не годится для USB-диска. Он ведь сейчас подключен, а через час - отключен. А уменьшать размер LVM тома не так просто, как увеличивать.

Заодно, может кто подскажет, какие директории используются apt в качестве рабочих? Man dpkg сообщает, что $TMPDIR, но у меня эта переменная не установлена...
Даже в школьных учебниках информатики упоминается как один из методов отладки: "если не работает, попробуйте наоборот" :)
LVM на USB-диске - это конечно экстрим. Хотя некоторые и языком умываются. Если _временно_ надо добавить места, то и так сойдет. Правда перед отключением диска от компа какие-то команды в консоли надо давать. А если под LVM подложить программный raid - то можно и живьём выдирать из разъема :) Уменьшать/увеличивать размеры томов (логических томов) - одинаково. А вот файловые системы на этих томах бывают разные. Есть такие, которые не умеют уменьшаться (а увеличиваться могут). Не помню про все, xfs кажется неуменьшаемая. ext2,3,4 reiserfs - запросто.
Рабочими каталогами я не заморачивался, при необходимости спросил бы у locate - уж он небось знает :)
« Последнее редактирование: Январь 21, 2011, 11:45:39 от Feduka »
2:5020/655.11