Как переместить весь каталог /usr/

zfs list

Используйте параметр listв команде zfs, встроенной в FreeBSD.

zfs list

Пример:

$ zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot               4.41G  17.4G    88K  none
zroot/ROOT          3.49G  17.4G    88K  none
zroot/ROOT/default  3.49G  17.4G  3.15G  legacy
zroot/tmp            112K  17.4G   112K  /tmp
zroot/usr            947M  17.4G    88K  /usr
zroot/usr/home       184K  17.4G   128K  /usr/home
zroot/usr/ports      947M  17.4G   947M  /usr/ports
zroot/usr/src         88K  17.4G    88K  /usr/src
zroot/var            792K  17.4G    88K  /var
zroot/var/audit       88K  17.4G    88K  /var/audit
zroot/var/crash       88K  17.4G    88K  /var/crash
zroot/var/log        348K  17.4G   348K  /var/log
zroot/var/mail        92K  17.4G    92K  /var/mail
zroot/var/tmp         88K  17.4G    88K  /var/tmp
$ 

Узнайте больше наzfsсправочной странице . Команда zfsимеет множество опций для управления широкими возможностями файловой системы ZFS .

0
19.05.2021, 11:44
3 ответа

Перемонтируйте /usr, если можете. Если вы не можете, вам нужно будет загрузиться из аварийной среды.

Я не думаю, что вы выполнили команду, которую описали.Я думаю, что вы, скорее всего, пропустили завершающую косую черту из источника, например

rsync -avzr /usr /usr1/    # DO NOT RUN THIS

Это скопирует /usrкак имя каталога в /usr1, поэтому /usr/bin/mvбудет иметь вид /usr1/usr/bin/mv. Вам нужно исправить это, избавившись от промежуточного /usr.

Это можно сделать, выполнив следующие действия. Если в какой-то момент вы получите что-то отличное от того, что я описал, НЕМЕДЛЕННО ОСТАНОВИТЕСЬ и сообщите (в своем вопросе ), что вы сделали и какие сообщения (s )были возвращены.

cd /usr1      # No output
ls            # You should see only 'usr' and 'lost+found'
mv usr/*.    # Notice the important trailing dot. No output
rmdir usr     # No output
cd /

Теперь попробуйте размонтировать и снова смонтировать

umount /usr
mount --bind /usr1 /usr

Если это работает, вы можете обновить /etc/fstab, чтобы установить /usrс устройства, содержащего /usr1, вместо устройства, содержащего старый /usr, и в удобный момент перезагрузить систему.

3
28.07.2021, 11:30

В современной системе Linux большинство исполняемых файлов используют общие библиотеки. Чтобы увидеть, какие из них используются с командой

ldd /usr/bin/mv

Особое значение имеет динамический загрузчик, что-то вроде /lib64/ld-linux-x86-64.so.2. Этот путь жестко запрограммирован в исполняемом файле, вы должны убедиться, что загрузчик доступен по этому пути.

Для других библиотек вы можете использоватьLD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/usr1/lib64

Если ваш динамический загрузчик недоступен, загрузчик GLIBC может быть вызван как исполняемый файл, другие загрузчики могут это поддерживать или не поддерживать.

Таким образом, вы можете использовать это для вызова исполняемого файла:

LD_LIBRARY_PATH=/usr1/lib64 /usr1/lib64/ld-linux-x86-64.so.2 /usr1/usr/bin/mv

Возможно, вам придется настроить пути для вашей системы.

0
28.07.2021, 11:30

Такую манипуляцию следует выполнять только в аварийной среде, загружая, например. установка с USB-накопителя и использование его инструментов. По крайней мере, установочный носитель Fedora можно использовать таким образом, если ваш дистрибутив не может, он, вероятно, предоставляет какой-то аварийный образ.

То же самое за диагностику и исправление беспорядка, который вы сделали.

0
28.07.2021, 11:30

Теги

Похожие вопросы