- Общие сведения
- Загрузка в режиме восстановления
- Резервное копирование каталога /boot
- Освобождение места в каталоге /boot
- Создание initrd
- Необязательное создание гарантированного свободного места
- Монтирование tmpfs в каталог /boot
- Создание и перемещение initrd
- Замена initrd
- Перезагрузка системы
- Действия после успешной перезагрузки
- Режим восстановления
- Возможно ли в Linux Debian создать точку восстановления системы или, что-то подобное?
Общие сведения
В данной статье рассматривается способ восстановления загрузочных файлов (содержимого каталога /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 обязательно выполнить команду:
Действия после успешной перезагрузки
Дальнейший порядок действия зависит от причины, вызвавшей неисправность.
В частности, в случае незавершённой установки обновления, следует завершить установку обновления командой:
Режим восстановления
Для того, чтобы была возможна нормальная работа в консоли режима восстановления (bterm, «синяя консоль») рекомендуется заранее установить пакет ncurses-term, если он не был ранее установлен:
Отсутствие этого пакета не критично, и при его отсутствии для работы в режиме восстановления применим описанный далее прием переключения в псевдотерминал («черная консоль»).
Для входа в режим восстановления:
- Вставить установочный диск и загрузиться с него;
- Выбрать язык установки;
- Выбрать режим Восстановления:
- Пройти первичную настройку:
- Согласиться с лицензионным соглашением:
- Выбрать предпочитаемый способ переключения раскладки клавиатуры :
- Ввести желаемое имя компьютера:
- Выбрать часовой пояс:
- Выбрать корневой раздел. Обычно это /dev/sda1 с таблицей MBR или /dev/sda2 с таблицей GPT:
- Запустить оболочку в корневом разделе:
- Запустить интерпретатор :
- Если в системе отсутствует пакет ncurses-term (например в консоли режима восстановления, не выполняется команда mc), то:
- перейти в псевдотерминал («черная консоль») с помощью клавиш «Alt+Ctrl+F2»:
- перейти в псевдотерминал («черная консоль») с помощью клавиш «Alt+Ctrl+F2»:
-
- Нажать клавишу «Enter» для активации консоли:
- Нажать клавишу «Enter» для активации консоли:
-
- После активации станет доступна командная строка:
- После активации станет доступна командная строка:
-
- Для получения доступа к корневому разделу выполнить команду chroot /target:
- Для получения доступа к корневому разделу выполнить команду chroot /target:
-
- Теперь в псевдотерминале доступен корневой раздел со всеми консольными утилитами и псевдографикой.
- Выполнить необходимые действия по восстановлению;
- Если работа выполнялась в псевдотерминале («черная консоль»)), то после окончания работы вернуться в «синюю консоль» (клавиша Ctrl-Alt-F1);
- Нажать Ctrl-D;
- Изъять оптический диск из привода;
- Перезагрузить машину:
Возможно ли в Linux Debian создать точку восстановления системы или, что-то подобное?
Возможно ли в Linux Debian создать точку восстановления системы или, что-то подобное?
/etc забекапь с ~/.* и всё
можешь образ ещё снять если нервишки шалят
Не совсем понял, что имеется в виду под точкой восстановления системы, но, возможно, вам подойдут снапшоты (snapshot) в btrfs или LVM. Они сохраняют состояние файловой системы целиком и позволяют потом смонтировать старое состояние.
точно, ждём новых топиков ТС 🙂
В общем нужно получить, что-то подобное, как Windows системе. Создаю точку отката, потом если, что-то неправильно делаю возвращаюсь на то место, когда все было хорошо и весело) Можно так в Linux делать?
Зачем? Не нужно. На винфак. Читай ответы уже.
Лучше всего подойдёт снэпшот fs — будет именно тот же инкрементальный эффект
Многие здесь создают резервные копии, банально архивируя систему
sudo su cd / tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
Ну или можно воспользоваться специальной программой для этого — Déjà Dup (наверняка она есть в репозиториях твоего Дебиана).
На всякий случай напомню, что настройки всех пользовательских программ, находятся в ~/.*, их тоже можно забэкапить.
P.S. Сам Déjà Dup не пользовался.
f1xmAn ★★★★★ ( 25.08.12 14:30:42 MSK )
Последнее исправление: f1xmAn 25.08.12 14:34:13 MSK (всего исправлений: 1)
Немного понял по теме. Спасибо всем)
Ага, то что «нужно» то ненужно» , потому что неправославно, а что нужно «так это православно но через ж.. 🙂
+1 только dd спасет тебя, будет как Time Machine в макоси
В общем нужно получить, что-то подобное, как Windows системе.
В Линуксе иной подход.
Смотри: от чего может «система» повредиться?
1. Пользователь что-то удалил/изменил. Все настройки пользователя хранятся в домашнем каталоге в скрытых файлах/каталогах — больше нигде. Скопируй их — вот тебе и защита.
2. root что-то изменил/удалил. 98% системных настроек хранятся в /etc , еще 1% может быть в /usr/etc или /usr/local/etc (хотя скорее сего у тебя там ничего нет), еще 1% ты вряд ли встретишь или будешь об этом знать. То есть скопируй эти каталоги.
3. root случайно удалил какой-то файл в системе. После того,как оторвешь админу руки, переустанови конкретно этот один пакет; узнать какой именно как правило несложно.
4. Неудачное обновление. Как правило всегда есть возможность откатиться на предыдущую версию.
Идея в том, что все, что можно, уже «забекаплено» а репозитории, бекапить нужно только то, что специфично для твоей системы.
Отличие Линукс от Windows в том, что:
1. Линукс намного сложнее перевести в совсем уж нерабочее состояние случайным удалением чего-либо.
2. Линукс — модульная система, и как правило есть возможность восстановить конкретный модуль. Я уже не говорю что здесь достаточно средств диагностики. Не имеет смысл восстанавливать все состояние системы, ведь могут потеряться полезные изменения.
3. В Линукс более точно распределено где что должно храниться, а значит легко найти проблему и устранить ее. Откат системы — это пушкой по воробьям; даже если так хочется — скопируй обратно /etc и конфиги пользователя — вот и все.
Единственное, для чего может понадобиться действительно серьезный бекап — пользовательские данные. Но это отдельная тема.
Линукс намного сложнее перевести в совсем уж нерабочее состояние случайным удалением чего-либо.
Кто сказал glibc? Я определённо слышал, что кто-то сказал glibc.
Кто сказал glibc? Я определённо слышал, что кто-то сказал glibc.
Там еще кто-то шептал про /boot/vmlinuz-* . Но таких точек намного меньше.
Ну удалённое ядро — в общем-то не так уж страшно, его можно откуда-нибудь скопировать, а с глибсёй уже сложнее.
[drugs] Давно уже нужно закопать этот убогий C, в котором удаление одной библиотеки приведёт к неработоспосибности системы. [/drugs]