Установите папку на диске в 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 и если да, то как?
  • что правильный подход, а если нет, то что?

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

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.

  • Жесткий диск USB не будет перезагружаться после отключения питания
  • Могу ли я монтировать SDADA READER в fstab?
  • floppy fstab для vfat и ext
  • Папка точек на основном жестком диске для вновь установленного 2-го жесткого диска
  • Автоматически монтировать диск с помощью / etc / fstab и ограничивать доступ ко всем пользователям определенной группы
  • Linux Mint - внешний привод, заставляющий мою файловую систему выглядеть полностью и давая мне ошибку «без пробелов на устройстве»
  • «PARTUUID» в «/ etc / fstab» и (аппаратное) RAID0 не хорошо сочетаются вместе, не так ли?
  • Должен ли я использовать / dev / sda или / dev / sdb в fstab при загрузке с USB?
  • Перегородка не установлена ​​из fstab
  • Автоматическое монтирование других разделов в Arch Linux
  • Подключайте пользовательские Samba-ресурсы, используя cifs
  • Interesting Posts

    Установите переменную env CHROME_BIN

    В bash, как вызвать переменную и обернуть кавычки вокруг ее значения как часть команды, не заставляя имя переменной стать строковым литералом?

    Xorg: несколько клавиатур, одна конфигурация

    HOME не устанавливается при использовании уязвимости

    Использование пакета Debian на основе хрома

    Просмотреть расширенные атрибуты с помощью coreutils ls на Mac

    Отправьте задачу на фоновый рисунок в «if»

    Можно ли просмотреть текст в формате unicode в выводе tcpdump?

    Идентичный MAC-адрес на двух разных виртуальных машинах, но у меня есть подключение к Интернету

    Команда Vim, чтобы превратить жесткие завернутые строки в визуально обернутые строки с сохраненным форматированием

    Debian – System (аудио) Настройки, нарушающие при запуске / остановке LXC

    режим восстановления grub: etc / resolv.conf: нет такого файла или каталога

    Как удалить файл с именем –help?

    Маршрутизировать весь трафик через прокси-сервер

    Неожиданно истекают тайники NFS

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