Я хочу переместить /home из одного раздела в другой. Как мне это сделать?

Поиск всех *.outфайлов, содержащих строку index123в текущем каталоге:

grep -lF 'index123'./*.out

Если вы хотите сделать рекурсивное grepдля всех *.outфайлов независимо от того, где они находятся в текущем каталоге:

find. -type f -name '*.out' -exec grep -lF 'index123' {} +

Печать каталога, в котором была найдена строка:

find. -type f -name '*.out' -exec grep -qF 'index123' {} ';' -exec dirname {} ';'

Выход после первого найденного имени каталога (с использованием GNUfind):

find. -type f -name '*.out' -exec grep -qF 'index123' {} ';' -exec dirname {} ';' -quit

В зависимости от того, для чего вы планируете использовать имя каталога, вы должны заменить -quitдругим -execдля обработки каталога любым способом, который вам нужен, или комбинировать различные -execутилиты в сценарий оболочки, вызываемый из -exec. Что вы не делаете, так это передаете имя каталога какой-либо другой команде, поскольку это, как правило, небезопасно, если вы не примете дополнительные меры предосторожности при разграничении имени пути (s )нулевыми символами.

Связанные:

2
08.08.2020, 19:21
3 ответа

Вообще было бы неплохо не использовать sda5напрямую, а сделать его LVM PV (pvcreate), создать для него LVM VG(vgcreate)и создать LVM LV homeв этой VG (lvreate). ]. Это значительно упрощает последующие изменения размера и имеет преимущества для резервного копирования.

Как бы вы это ни делали:

  • Где-нибудь смонтируйте отформатированное целевое блочное устройство, например./mnt/tmp
  • Прервите все процессы, которые используют /home(, чтобы быть в безопасности, которую вы можете запуститьumount /home && mount /home)
  • скопировать данные из старой файловой системы в новую:cp -a /home/. /mnt/tmp
  • изменить запись для /homeв /etc/fstabсо старой на новую блочное устройство (или UUID, см.blkid)
  • размонтировать старую файловую систему:umount /home
  • смонтировать новую файловую систему:mount /home
  • проверить, работает ли:df -h /home
2
18.03.2021, 23:14

Прежде чем делать что-то серьезное, убедитесь, что ваши резервные копии обновлены.

Для перемещения /home используется rsync. -Обязательно используйте параметры для сохранения прав собственности и разрешений.

help.ubuntu.com/community/Partitioning/Home/Moving

Но вы также можете использовать его как раздел данных. Я храню /home внутри/(root ), а /home занимает около 3 ГБ, но все данные находятся в связанных папках из раздела данных. Не обязательно должен быть второй диск, как показывают эти примеры. Просто любой другой раздел.

https://askubuntu.com/questions/1013677/storing-data-on-second-hdd-mounting

https://askubuntu.com/questions/1058756/installing-all-applications-on-a-ssd-disk-and-putting-all-files-on-hdd-disk

0
18.03.2021, 23:14

Если вы можете удалить /dev/sda5 (он кажется пустым/неиспользуемым?)

Если это так, то есть довольно простой способ сделать это с помощью пользовательского интерфейса Gparted:

  1. удалить /dev/sda5
  2. Переместите соседний /dev/sda8 на передний план (, где находился sda5)
  3. перемещать+увеличивать /dev/sda11 как вам угодно

Системе придется физически переместить ~27 ГБ sda5 (/ )и, возможно, также 55 ГБ sda11 (/home ), поэтому в зависимости от вашего диска это может занять несколько часов..

В противном случае

Для этого вам понадобится терминал. Либо скопируйте весь раздел sda11 поверх sda5 с dd, например:

dd if=/dev/sda11 of=/dev/sda5 bs=1M

... или назначьте /dev/sda5 некоторую точку монтирования и скопируйте данные с помощью rsync или любого другого файлового менеджера, который вы предпочитаете (только будьте осторожны, чтобы использовать параметр rsync -anдля сохранения прав доступа ). Когда закончите, измените точку монтирования sda11 и измените sda5 на /home.

0
18.03.2021, 23:14

Теги

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