- Общие сведения
- Загрузка в режиме восстановления
- Резервное копирование каталога /boot
- Освобождение места в каталоге /boot
- Создание initrd
- Необязательное создание гарантированного свободного места
- Монтирование tmpfs в каталог /boot
- Создание и перемещение initrd
- Замена initrd
- Перезагрузка системы
- Действия после успешной перезагрузки
- Установка Astra Linux на LVM и применение LVM для отката обновлений
- Термины
- Установка ОС Astra Linux на логических дисках LVM
- Проверка успешности установки LVM
- Применение LVM для отката изменений
- Добавление свободного пространства
- Создание моментального снимка
- Откат изменений
Общие сведения
В данной статье рассматривается способ восстановления загрузочных файлов (содержимого каталога /boot) в ситуации, когда из-за их повреждения нормальная загрузка ОС стала невозможной. Восстановление включает в себя следующие этапы:
- загрузка с инсталляционного диска с последующим переходом в «режим восстановления»;
- необязательное резервное копирование содержимого каталога /boot;
- подключение к каталогу /boot временной файловой системы, имеющей свободное место;
- перегенерация файла initrd;
- замена старого файла на новый;
Типичная ситуация, в которой могут потребоваться такие действия: неудачно завершившееся обновление при недостатке места в дисковом разделе /boot. После такого неудачного обновления система перестает загружаться и, как правило, выводит ошибку:
- - - [ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknow-block(0,0)
Возникновения ошибки нехватки места характерно для систем, установленных с использованием LVM, поэтому далее в примере рассматриваются действия с системой, установленной с использованием LVM. Действия для других вариантов установки аналогичны, отличаться будут только названия дисковых разделов.
Загрузка в режиме восстановления
Для загрузки в режиме восстановления требуется инсталляционный диск (USB-накопитель) ОС Astra Linux Special Edition очередное обновление 1.6.
Порядок действий:
- Вставить инсталляционный диск в привод;
- Загрузиться с инсталляционного диска;
- Выбрать «Режим восстановления»:
Проследовать по пунктам (нажимая Enter) до выбора корневой файловой системы, где выбрать . /root:
Затем выбрать запуск оболочки так же в /dev/16-lvm-vg/root:
После выполнения указанных действий должен загрузиться терминал с синим фоном:
Нажать CTRL+ALT+F2 и нажать Enter, после чего должен открыться терминал на черном фоне:
Резервное копирование каталога /boot
Резервное копирование каталога /boot не обязательно.
Копирование выполняется в каталог /home, в папку boot-backup, в случае успешного восстановления загрузки системы не забудьте его удалить.
Для создания резервной копии выполните в терминале команду:
Дождитесь завершение работы команды.
Освобождение места в каталоге /boot
Проверить содержимое каталога /boot:
итого 226516
drwxr-xr-x 3 root root 4096 апр 10 21:40 .
drwxr-xr-x 25 root root 4096 апр 13 17:27 ..
-rw-r—r— 1 root root 1492731 июн 20 2018 abi-4.15.3-1-generic
-rw-r—r— 1 root root 1467894 июн 20 2018 abi-4.15.3-1-hardened
-rw-r—r— 1 root root 215263 июн 20 2018 config-4.15.3-1-generic
-rw-r—r— 1 root root 215941 мар 4 16:10 config-4.15.3-2-generic
drwxr-xr-x 5 root root 4096 апр 10 21:40 grub
-rw-r—r— 1 root root 46731042 апр 10 21:40 initrd.img-4.15.3-1-generic
-rw-r—r— 1 root root 45810528 апр 10 21:39 initrd.img-4.15.3-1-hardened
-rw-r—r— 1 root root 46182771 апр 10 21:40 initrd.img-4.15.3-2-generic
-rw-r—r— 1 root root 44873873 апр 10 21:40 initrd.img-4.15.3-2-hardened
-rw——- 1 root root 8038256 июн 20 2018 old-vmlinuz-4.15.3-1-generic
-rw——- 1 root root 7214960 июн 20 2018 old-vmlinuz-4.15.3-1-hardened
-rw-r—r— 1 root root 0 июн 20 2018 retpoline-4.15.3-1-generic
-rw-r—r— 1 root root 0 июн 20 2018 retpoline-4.15.3-1-hardened
-rw——- 1 root root 3969624 июн 20 2018 System.map-4.15.3-1-generic
-rw——- 1 root root 3186040 июн 20 2018 System.map-4.15.3-1-hardened
-rw——- 1 root root 3995440 мар 4 16:10 System.map-4.15.3-2-generic
-rw——- 1 root root 3174738 мар 4 16:10 System.map-4.15.3-2-hardened
-rw——- 1 root root 8144672 мар 4 16:10 vmlinuz-4.15.3-2-generic
-rw——- 1 root root 7190304 мар 4 16:10 vmlinuz-4.15.3-2-hardened
В примере выше видно, что в каталоге /boot хранятся две версии ядра — 4.15.3-1 и 4.15.3-2, и каждая версия представлена в двух вариантах — generic и hardened. Удалить ненужные файлы можно командой rm. Например, если не используется ядро hardened, то удалить все файлы, относящиеся к этому ядру:
Создание initrd
Новый initrd создать командой:
При этом вместо номера 4.15.3-2 использовать номер имеющегося в системе ядра, которое предполагается использовать.
Необязательное создание гарантированного свободного места
Монтирование tmpfs в каталог /boot
Для того, чтобы смонтировать в каталог /boot чистую файловую систему, имеющую свободное место, выполните команду:
После выполнения монтирования старое содержимое каталога /boot станет недоступно, и каталог будет представляться пустым.
Создание и перемещение initrd
Новый initrd в примонтированной файловой системе создать такой же командой:
При этом вместо номера 4.15.3-2 использовать номер имеющегося в системе ядра, которое предполагается загружать в дальнейшем.
Так как после отмонтирования времнной файловой системы всё её содержимое будет утеряно, нужно сохранить новый сформированный initrd, например, скопировав его в каталог /home командой:
Замена initrd
Отмонтировать tmpfs от каталога /boot командой:
Заменить старый файл initrd.img-4.15.3-2-generic на новый командой:
Если для копирования недостаточно места — повторить удаление ненужных файлов, после чего повторить операцию копирования.
Перезагрузка системы
После замены файла initrd обязательно выполнить команду:
Действия после успешной перезагрузки
Дальнейший порядок действия зависит от причины, вызвавшей неисправность.
В частности, в случае незавершённой установки обновления, следует завершить установку обновления командой:
Установка Astra Linux на LVM и применение LVM для отката обновлений
LVM — Менеджер логических томов (англ. logical volume manager ) — подсистема, позволяющая использовать разные области одного жёсткого диска и/или области с разных жёстких дисков как один логический том.
Термины
- Физический том ( physical volume , pv) — устройство, представляющееся системе как один диск (жёсткий диск или его раздел, RAID-массив);
- Группа томов ( volume group , vg) — несколько физических томов pv (группа, набор);
- Логический том ( logical volume , lv) — логический раздел; аналог разделов hda1, sdb3 и др.; виртуальное блочное устройство.
Установка ОС Astra Linux на логических дисках LVM
Для установки ОС Astra Linux на логические диски под управлением LVM следует:
- Начать установку в обычном режиме и продолжить её до этапа выбора разметки дисков:
- Выбрать диск для разметки:
- Выбрать способ разметки диска (для примера — автоматическая разметка с размещением всех файлов в одном дисковом разделе):
Дисковый раздел для размещения каталога /boot по умолчанию создаётся с размером 254МБ, что может в дальнейшем оказаться недостаточным для установки дополнительных ядер. Для предотвращения возможных проблем с установкой обновлений рекомендуется сразу увеличить размер этого раздела по крайней мере до 512МБ.
Проверка успешности установки LVM
Проверить наличие LVM можно командой просмотра списков групп томов:
В примере выше сообщается о наличии группы томов astra-vg с общим размером 37.75GB, в том числе 12ГБ свободного пространства (Имя astra-vg выбирается по умолчанию при стандартной установке ОС).
Так же проверить наличие LVM можно командой просмотра списков логических томов, например:
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvsnap astra-vg swi-a-s— 4,00g root 79,20
lvsnap2 astra-vg swi-a-s— 4,00g root 75,78
root astra-vg owi-aos— 15,76g
swap_1 astra-vg -wi-ao—- 2,00g
В примере выше сообщается о наличии томов root и swap_1 (создаются автоматически при установке «по умолчанию»), и о наличии двух моментальных снимков логического тома root (см. параметр Origin) с именами lvsnap и lvsnap2, заполненных на 79.20% и 75.78%.
Применение LVM для отката изменений
Моментальные снимки делаются в ту же группу томов, в которой находится сохраняемый том, соответственно в этой группе томов должно быть достаточно свободного места.
Добавление свободного пространства
Если при установке системы при разметки дисковых разделов не было зарезервировано свободное место, можно подключить и добавить в группу новый накопитель или дисковый раздел. Например, добавим накопитель /dev/sdb:
pvs
PV VG Fmt Attr PSize PFree
/dev/sda5 astra-vg lvm2 a— 17,76g 0
/dev/sdb astra-vg lvm2 a— 20,00g 12,00g
В примере выше представлены два физических тома (том /dev/sda5, являющийся дисковым разделом (создан автоматически при установке системы), и том /dev/sdb, являющийся устройством, и добавленный после установки системы. При этом оба тома входят в группу томов astra-vg).
После создания физического тома его нужно добавить в какую-либо группу томов (фактически — расширить группу томов на новый физический том), например, добавим созданный физический том в созданную при установке группу томов vg-astra:
Создание моментального снимка
Моментальный снимок можно создать командой:
Моментальный снимок не является копией диска, а содержит только изменения после момента создания диска. Поэтому:
- Снимок создаётся быстро, практически моментально;
- Размер места, назначаемого для размещения снимка, не зависит от размеров сохраняемого носителя, а зависит только от количества вносимых изменений;
- Место, отведённое под снимок, расходуется по мере внесения изменений;
При установке обновлений вносится значительное количество изменений. В качестве примера: при написании этой статьи при установке Update 3 на ранее не обновлявшуюся ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с минимальной конфигурацией ПО из отведённых под снимок 4ГБ было израсходовано 79%. Очевидно, при этом количество изменений зависит от набора установленного ПО (чем больше ПО — тем больше изменений), и от наличия ранее установленных обновлений (если были установлены предыдущие обновления — то изменений будет меньше).
- -s — команда выполнения снимка состояния;
- -n lvsnap — имя создаваемого логического тома со снимком (lvsnap);
- /dev/astra-vg/root — имя сохраняемого тома (см. выше примеры команд, выводящих списки томов).
Для предупреждения отказов записи из-за переполнения области снимка в настройках LVM предусмотрена возможность автоматического увеличения размеров логических томов по мере их заполнения, для чего в файле /etc/lvm/lvm.conf предусмотрены параметры:
- snapshot_autoextend_treshold = 100 — величина в процентах, указывающая, при каком заполнении тома производить его автоматическое увеличение. По умолчанию установлена величина 100%, т.е. автоматическое увеличение отключено;
- snapshot_autoextend_percent = 20 — величина, указывающая, на сколько процентов автоматически увеличивать том.
При переполнении пространства, отводимого под снимок, запись на диск будет запрещена. Логический том может увеличиваться автоматически, но для этого должно иметься свободное место в содержащей этот логический том группе томов. Группа томов автоматически увеличиваться не может.
Откат изменений
- Для отката изменений следует перезагрузить компьютер, например, с Live-образа Astra Linux Common Edition (или с отдельного дискового раздела, если такой раздел предусмотрен в системе).
- При работе в открытой сети:
- Если в сети не настроено автоматическое назначение параметров сетевых подключений, то вручную настроить подключение к сети (в частности, указать в настройках сетевого подключения сервер DNS, например 8.8.8.8) и перезапустить службу сети, чтобы это изменение настройки вступило в силу;
Внимание! Загрузочный дисковый раздел /boot НЕ ДОЛЖЕН находиться на диске LVM.
При установке ОС Astra Linux с параметрами «по умолчанию» это правило будет выполнено автоматически, при ручных настройках следует выделить для размещения загрузочных данных отдельный дисковый раздел.
Внимание! Если предполагается в дальнейшем сохранять снимки состояния системы, то при разметке дисковых разделов рекомендуется предусмотреть свободное место для размещения этих снимков (не обязательно, так как в дальнейшем можно подключить и использовать дополнительные накопители).
Можно также зарезервировать отдельный загрузочный раздел, чтобы загружаться с него для восстановления системы из сделанных снимков (на него понадобится установить отдельный экземпляр ОС).