Убедитесь, что root shut и root отключены при завершении работы

Я пытаюсь настроить систему Linux, которая выполняется из файла образа в формате LVM. После некоторых изменений с параметрами initramfs и загрузки мне удалось запустить и запустить, установив файловую систему хоста в /run/initramfs/host , losetup изображение в /dev/loop0 и убедившись, что ядро ​​и udev обнаруживают LVM (и корень LV). Все идет нормально.

Проблема заключается в том, что при выключении (или перезагрузке или …) система ни корневая файловая система, ни хост не размонтируются должным образом из-за сценария с курицей и яйцом: корень (или /oldroot , как он упоминается сценарий выключения) нельзя /oldroot/run/initramfs/host , поскольку /oldroot/run/initramfs/host все еще смонтирован, и хост не может быть отключен, так как это сделает /oldroot недоступным.

Unclean shutdowns – это не конец света, потому что обе файловые системы журналируются, поэтому во время следующей загрузки fsck просто повторяет журналы, но, очевидно, чистое завершение работы было бы лучше.

Поэтому возникает вопрос: можно ли как-то упорядочить последовательность выключения (я могу изменить сценарий выключения) или последовательность загрузки (возможно, переместив точку монтирования хоста в другое место), чтобы обе файловые системы могли быть полностью размонтированы?

3 Solutions collect form web for “Убедитесь, что root shut и root отключены при завершении работы”

Для выполнения такой работы есть какой-то линукс :

  • mount --move который позволяет вам mount --move файловую систему на точку монтирования
  • pivot_root которые работают с chroot для файловой системы switch / root

Первоначально цель этой цели заключалась в следующем:

  1. загрузка ядра с initramdisk качестве корневой файловой системы (резервирование некоторой RAM для несжатого initrd ).
  2. Все необходимые модули и скрипты для доступа к реальному корневому устройству инициируются на этом первом этапе загрузки. (Это может содержать сетевую инициализацию и установку сетевых устройств)
  3. После подготовки, проверки реального корневого устройства и установки в качестве готового корневого файла. Запуск pivot_rootchroot ), поэтому после работы ramdisk станет неиспользуемым диском ramdisk , установленным в /initrd .
  4. Поэтому оттуда можно umount /initrd и освободить память.

Посмотрите на man mount и man pivot_root !

Если у кого-то такая же проблема:

Все, что мне было нужно, – переместить точку монтирования файловой системы хоста в место вне корневой файловой системы в сценарии завершения работы (это нормально, потому что он работает в корневом корневом каталоге tmpfs ) до того, как произойдет размонтирование:

 mount --move /oldroot/run/initramfs/host /host 

Это позволяет /oldroot полностью отключать. Файловую систему хоста можно размонтировать с помощью простого

 umount /host 

Чтобы пометить файловую систему как чисто размонтированную, не делая файлы на ней недоступными, перемонтируйте ее как доступную только для чтения:

 mount -o remount,ro /mount/point 

Это можно сделать, даже если файлы открыты для чтения, запускают исполняемые файлы, текущие каталоги или активные точки монтирования в этой файловой системе. Только файлы, открытые для записи, не позволяют повторно установить только чтение.

Interesting Posts

bash: раскрасить второй столбец вывода

Полная изоляция в песочнице Linux

Как настроить сервер localhost с протоколом http на apache

Настройки видеопамяти Grub?

Случайный код ошибки rsync 12 «Сброс соединения с помощью peer (104)» из задачи cron, которая запускается каждые 20 минут

Сценарий Bash для получения всего mp3-файла с html-страницы

Как проверить, установлена ​​ли моя графическая карта на Linux?

Диапазон возможного значения, возвращаемого cksum

Как подключить LVM RAID к новой установке Ubuntu?

Сделать звуковую карту видимой для нового пользователя

Linux Сетевая маршрутизация на виртуальные IP-адреса из другой подсети

Регистрация SSH в Linux через PUTTY

Linux-сервер с чаем-деамоном, подключенным к активному каталогу, защищающему клиентов от использования драйверов или PPD

Файл Doom замораживает любой компьютер, который пытается взаимодействовать

«Avahi-daemon : server.c: слишком короткий или недопустимый пакет при чтении записи ответа. (Может быть, проблема UTF-8?) "

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