LINUX.ORG.RU
ФорумAdmin

Отмонтирование корневого раздела наживую

 , , fuser, ,


0

1

Привет!

Решил сделать так: https://unix.stackexchange.com/questions/226872/how-to-shrink-root-filesystem...

Сейчас имею

# fuser -vm /oldroot
                     USER        PID ACCESS COMMAND
/oldroot:            root     kernel mount /oldroot

Однако, не могу сделать umount:

# umount /oldroot
umount: /oldroot: target is busy
        (In some cases useful info about processes that
         use the device is found by lsof(8) or fuser(1).)

Как же так?

Спасибо

upd: ubuntu 16.04

# df -hT
Filesystem                 Type      Size  Used Avail Use% Mounted on
udev                       devtmpfs  7.9G     0  7.9G   0% /dev
tmpfs                      tmpfs     1.6G   17M  1.6G   2% /run
/dev/mapper/srv--vg-root   ext4       38G  2.6G   34G   8% /oldroot
tmpfs                      tmpfs     7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs                      tmpfs     1.6G     0  1.6G   0% /run/user/1002
none                       tmpfs     7.9G  1.9G  6.0G  24% /
tmpfs                      tmpfs     7.9G     0  7.9G   0% /dev/shm
tmpfs                      tmpfs     5.0M     0  5.0M   0% /run/lock

Deleted

Последнее исправление: Deleted (всего исправлений: 4)

ext4 давным давно умеет ресайзиться на ходу.

Ресайз в оффлайне требуется только в каких-то хитрых случаях.

vel ★★★★★
()
Ответ на: комментарий от vel

... например в случае уменьшения раздела, проверки fsck или некоторого тюнинга. Ну хорош тупить. Без оффлайна никуда.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Самое паскудное, что даже https://github.com/szepeviktor/debian-server-tools/blob/master/debian-resizef... не сработал.

Кто-нибудь знает, как понять, почему оно не срабатывает? Initrd генерится корректный, но после ребута ничего не происходит. Как логгировать выхлоп initrd? Эти скрипты вообще отрабатывают и чего им не хватает? (ROOT я задал, локально оно работает).

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Угу я сначала таким способом делал, через pivot_root. Повторил манипуляции несколько раз, на шаге «umount /mnt/oldroot» затык (см ОП) каждый раз. Через initrd тоже не удалось. Блин, что за черный ящик, нихрена непонятно, как посмотреть причину подвисания точки монтирования. loop девайсов, nfs шар, swap файлов - тоже нет. Гуру systemtap бы сюда.

Сказал местному админу, что бы дисков добавил, короче. Как тут с вашим линуксом удаленно управиться, я хз :)

Deleted
()
Ответ на: комментарий от Deleted

Про тюнинг и fsck - это да. А вот про уменьшение - никогда не приходилось пробовать.

vel ★★★★★
()
Ответ на: комментарий от Deleted

Я думаю, что подсказки нужно искать в «cat /proc/mounts» и в списке запущеных процессов.

fuse дает такой эффект

vel ★★★★★
()

А перезагружаться по условиям челленжа можно?

Если да, то в grub'е переходишь в режим редактирования, в параметрах ядра указываешь break=premount, запускаешь загрузку. Она останавливается до этапа монтирования. В открывшемся шеле запускаешь vgchange -ay, затем временно монтируешь корневой раздел куда-нибудь, копируешь с него resize2fs к себе, вместе с библиотеками, которые будет просить при запуске. Потом отмонтируешь корневой раздел, и уже меняешь размер ФС на корневом разделе.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

теперь я кажется понял, почему Отмонтирование корневого раздела наживую (комментарий) не срабатывал. надо делать vgscan;vgchange -ay. Ребутать можно, доступа физического нет.

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

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.