Установите папку на диске в fstab. Переехать?

Я хотел бы внести временные изменения в файл fstab чтобы мой /home был на другом диске. Тем не менее, я не хочу, чтобы весь раздел был установлен, а просто папка («home») в этом разделе. Я в порядке, остальная часть данных недоступна.

Каков канонический способ выражения этого в fstab ? Я не могу придумать способ сделать это в одной команде (поскольку я не могу ссылаться на папку на файловой системе, которую я не смонтировал). Я думаю, что мне нужно сделать первый монтировку, а затем переместить папку в /home . Но я не знаю, могу ли я сделать шаг в fstab , не нашел его в man (и мне не хочется делать слепо, потому что у меня только ssh доступ к машине прямо сейчас).

На данный момент у меня есть привязка mount в fstab :

 /dev/sdd1 /mnt/temphome ntfs defaults,errors=remount-ro 0 2 /mnt/temphome/home /home none bind 

Однако это оставляет /dev/sdd1 установленным в обеих точках.

Обобщить:

  • могу ли я выполнить операцию перемещения в fstab и если да, то как?
  • что правильный подход, а если нет, то что?

Заранее спасибо.

  • Автоматически запускать kpartx во время загрузки
  • Помогите мне найти UUID моего SSD, который уже разбит на разделы? Я хочу установить его под домашним режком
  • fstab mount, boot вставлен на "Запуск задания выполняется для dev-disk-by \ ..."
  • Есть ли причина уйти от fstab в системе systemd?
  • fstrim выравнивает более половины размера раздела, даже если раздел монтируется с отбрасыванием
  • Размещение жесткого диска fstab
  • специальные разделы подкачки для нескольких экземпляров debian на одном компьютере
  • Arch / OSX - параметры fstab для общего / домашнего (HFS +) на SSD
  • 2 Solutions collect form web for “Установите папку на диске в fstab. Переехать?”

    Я не думаю, что вы можете выполнять действия из /etc/fstab . Если вы хотите это сделать, добавьте команду mount --move в /etc/rc.local . Это оставляет время в процессе загрузки, в течение которого домашние каталоги недоступны в конечном месте. Поскольку это домашние каталоги, они не должны использоваться много, если вообще при загрузке, так что все в порядке. Единственное, что я могу придумать, это директивы @reboot crontab. Если у вас есть какие-либо из них, то должны быть доступны домашние каталоги, поэтому вы должны добавить mount --move в нужное место в /etc/rc.sysinit вместо этого (сразу после mount -a ).

    Однако использовать привязку привязки, вероятно, хорошо. Что может пойти не так, это в основном процессы, которые проходят весь диск, например резервные копии и updatedb. Выход из привязок в /etc/fstab является наименее рискованным вариантом, но вы должны настроить процессы обхода диска для пропуска /mnt/temphome/home .

    Еще одна возможность – сделать /home символическую ссылку. Однако это может привести к тому, что некоторые программы будут записывать абсолютный путь к домашним каталогам пользователей, который будет /mnt/temphome/home/bob . У установки привязки или перемещения подпункта не возникает этой проблемы.

    Нет, вы не можете делать то, что вы просите. Как вы уже отметили, вы не можете ссылаться на файл в файловой системе, которую вы еще не установили. [*]

    Тем не менее, существует схема, которая может сработать для вас: файловая система в файле на донорном разделе, смонтированная с помощью устройства loop. Рассматривать:

     # cd /mnt/temphome # chmod 700 . # chown root.root . # dd if=/dev/zero of=temphome bs=4k count=1M # mke2fs -j temphome (answer yes to the annoying question) # mount temphome /home -o loop 

    Это делает создание 4-гигабитной /home файловой системы, которая живет в файле в корне раздела /mnt/temphome . Вам все равно придется монтировать раздел-донор и оставить его установленным, но только root может его смонтировать или напрямую изменить его содержимое, включая установку /home через устройство loop. Однако, если вы установили новый /home , обычные пользователи могут писать в эту новую файловую систему, потому что они делают это через ядро, которое имеет силу сделать это, мощность, контролируемая разрешениями в файловой системе цикла .

    Если по какой-то причине это все еще подвергает раздел /mnt/temphome большему риску, чем вы хотите принять, лучшей альтернативой, о которой я могу думать, является использование gparted для сжатия раздела доноров и использование пространства, открытого для создания нового временного /home раздел. Когда вы закончите использовать его, перейдите в gparted, удалите временный раздел и повторно разверните раздел-донор, чтобы использовать свободное пространство. У этого есть свои риски, хотя: изменение разделов не на 100% безопасно.


    [*] Ну, это не совсем так. Иногда вы видите обман, связанный с информацией о точном расположении диска (сектор, голова, дорожка) файлов в других файловых системах. Это наиболее часто встречается в низкоуровневых действиях: спящий режим, своп, загрузка … Для этого вам нужен полностью непрерывный файл (т. Е. Без фрагментации), который никогда не перемещается, так что вы можете просто начать чтение и запись необработанных секторов из и к размонтированному разделу.

    Если вы наблюдаете тенденцию таких вещей с течением времени, вы заметите, что они со временем становятся менее популярными из-за различных последствий. Во-первых, дефрагментаторы, как правило, нарушают такие схемы. Это одна из причин /boot и swap как правило, отдельные разделы под Linux.

    Linux и Unix - лучшая ОС в мире.