Восстановление системы из архива созданного программой fwbackups
На сегодняшний день восстановить систему с помощью программы fwbackups невозможно, так как нельзя указать папку для распаковки. Кто знает английский и у кого есть желание это исправить пообщайтесь пожалуйста с разработчиком программы.
Содержание
Предполагается
- вы уже умеете записывать загрузочные образы на диск или флешку.
- знакомы, хотя бы в общих чертах, с консолью, с командами su, fdisk, mkdir, cd, mount, chroot, tar, а также с загрузчиком GRUB.
- Если всё же нет, то почитайте об этом в интернете. Начать можете здесь:
Подготовка
Давайте определимся что нам понадобиться.
- В первую очередь, загрузочный носитель с которого можно загрузить любой linux без установки.
- В этой статье будем придерживается Mageia LiveDVD KDE, ссылка для загрузки
Архитектура загрузочного диска и восстанавливаемой системы должны совпадать.
- Сама резервная копия системы.
- Немного терпения и настойчивости.
Вставляем загрузочный носитель и запускаем с него систему.
Открываем консоль и вводим:
Если вы помните на каком разделе находилась система, то можете пропустить эту часть и сразу перейти к разделу "Приступаем"
Если же нет, то читаем дальше. Посмотрим какие разделы есть на жёстком диске.
Для примера, вывод получился таким:
Disk /dev/sda: 20,6 GiB, 22109421568 bytes, 43182464 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00010ef0
Устр-во Загрузочный Start Конец Blocks Id System
/dev/sda1 * 2048 20531069 10264511 83 Linux
/dev/sda2 20533212 43166654 11316721+ 5 Extended
/dev/sda5 20533248 24643709 2055231 82 Linux swap / Solaris
/dev/sda6 24647680 43166654 9259487+ 83 Linux
Вот некоторые способы определения системного раздела:
- определяем по типу системы.
- В колонке "System" видим различные типы для каждого раздела. Среди них есть те, которые, наверняка, не содержат файлов системы. В данном случае это типы "Extended" и "Linux swap". Осталось выбрать из 2 оставшихся.
- определяем по флагу загрузки.
- Обычно, но не всегда, загрузочный раздел и является системным.
- определяем по размеру.
- В колонке "Blocks" указан размер разделов в блоках. Часто, но не всегда, размер системного раздела меньше чем раздел /home.
- Также можно вспомнить какой был размер вашего раздела и посчитать. Делается это так:
- Выше в строке "Units" указано, что один блок = 1 cектору размером 512 байт.
- Количество блоков для раздела /dev/sda1 10 264 511 * 512 = 5 255 429 632 Байт
- В одном гигабайте 1 073 741 824 байта. Округлим для простоты до 1 000 000 000.
- 5 255 429 632 байт / 1 000 000 000 примерно 5,2 ГБ.
- определяем по содержимому. Запускаем в консоли оболочку grub.
Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ]
- Вспоминаем любой путь к файлу который точно находился на системном разделе, но его точно не было на других. Допустим /etc/group
- В оболочку grub вводим:
grub> find /etc/group find /etc/group (hd0,0)
- это означает, что системным у вас был раздел /dev/sda1
Надеюсь, что теперь вы уже знаете какой раздел вам нужен. Если нет, то попробуйте поискать информацию в интернете или спросить на форуме.
Приступаем
Случай 1. Не запускается система
В статье, для примера, системным будет раздел /dev/sda1. Подключаем его.
если ваша резервная копия находится на другом разделе или съёмном накопителе, то не забудьте подключить и его, предварительно создав любую другую незанятую папку в папке /media
Теперь посмотрим что на нём есть. Для этого запустим dolphin с переходом в нужную папку:
Через некоторое время появится окно программы dolphin.
На панели инструментов нажимаем кнопку "Управление". Выбираем "Показывать скрытые файлы".
И снова видим перед собой папку внешний вид которой может измениться.
Затем выделяем все файлы и папки КРОМЕ той, в которой находится резервная копия. Для примера это папка home.
Если резервная копия находится на другом разделе или съёмном накопителе, то выделяйте вообще все папки и файлы.
Для тех кто не знает как это сделать:
- Подводим мышь к любому значку папки или файла и видим что он изменяется. Щелкаем мышью на появившийся плюс или минус, при этом она либо выбирается, либо отменяет выбор. Если щёлкнуть ещё раз ситуация повторяется. Продолжаем процесс :) до тех пор, пока не станут выбраны все те папки которые необходимо удалить.
- Это выглядит так.
Следующие действия НЕОБРАТИМО удалят информацию. Хорошо подумайте прежде чем это делать.
Жмём <SHIFT>+<DELETE> Для тех кто не понял:
- На клавиатуре нажимаем и держим кнопку <SHIFT> и затем нажимаем и сразу отпускаем кнопку <DELETE>, теперь отпускаем кнопку <SHIFT>.
Иногда кнопка <DELETE> подписана как <DEL>, а кнопка <SHIFT> как длинная кнопка со значком стрелка вверх.
Появляется окно подтверждения удаления. Нажимаем кнопку "Удалить"
Это окно закроется и появится следующее, которое покажет процесс удаления.
После того как удаление закончится, окно с содержимым папки снова изменится.
Осталось только восстановить.
Давайте приступим.
Переходим в папку с резервной копией. Выбираем файл, нажимаем правую кнопку мыши. Появится контекстное меню. Выбираем "Открыть с помощью Ark"
Откроется новое окно, главное окно программы архиватора "Ark". А также сразу начнётся процесс распаковки резервной копии. После этого программа покажет содержимое резервной копии. Вы можете походить по папкам и осмотреться. Затем разверните окно архиватора на весь экран.
На панели инструментов нажмите кнопку "Распаковать".
Откроется окно выбора папки. Разверните и его на весь экран.
Выберете папку к которой подцеплен ваш системный раздел. Затем в правой части снимите флажок "Создавать вложенную папку", установите флажки "Закрыть Ark после распаковки" и "сохранять пути". Внизу переключите тумблер в положение "Все файлы" Если вы не выбирали папки и файлы в главном окне, то этого тумблера не будет.
Теперь нажмите внизу кнопку "OK"
Это окно закроется и мы снова увидим главное окно. Справа внизу появится индикатор "Распаковка всех файлов".
Если в процессе распаковки программа встретит файлы которые уже есть на вашем разделе, то появится диалоговое окно.
Установите флажок "Применить ко всем" и нажмите кнопку "Заменить".
После того как архив распакуется, окно программы "Ark" закроется, и мы снова увидим обозреватель файлов Dolphin.
Теперь все файлы системы уже на месте. Отцепляем наш раздел. Для этого снова выбираем папку с восстановленными данными.
С левой стороны на панели "Точки входа" видим подсвеченную строку. Наведите на неё курсор и нажмите правую кнопку мыши.
Появится контекстное меню, в нем выберете "Отключить ...". Файлы и папки справа пропадут.
Теперь можете попробовать перезагрузить компьютер. Но давайте не будем торопиться. Дочитайте хотя бы следующие 2 строчки :)
Если после перезагрузки система всё равно не запустилась, то возвращайтесь и читайте дальше.
Теперь уже нет необходимости выполнять действия из раздела этой статьи под названием "Случай 1. Не запускается система"
Всё. Вперёд :)
Случай 2. Системный раздел был повреждён, был отформатирован или необходимо скопировать/восстановить систему на другом жёстком диске.
Небольшое вступление для тех кто вернулся после перезагрузки в предыдущем пункте.
- Linux - система очень мощная. Она славиться в том числе и тем, что действия в ней можно выполнять по разному. Так как действия этого раздела, на данный момент, невозможно выполнить без команд набираемых в консоли, то я повторю все действия из предыдущего раздела именно в ней. Приглядитесь повнимательнее, может вам как и автору, понравится именно такой метод.
Для примера, системный раздел /dev/sda1. Если у вас не так, необходимо поменять /dev/sda1 на ваш, везде где он будет встречаться.
Открываем консоль. Вводим
Не стоит хранить резервные копии на системном разделе. Если всё-же это так, то перепишите их либо на соседний раздел диска либо на съёмный накопитель. Так как эта тема достойна целой статьи, то пропустим рассказ о том как это сделать.
Если у вас новый жёсткий диск, или произошёл сбой и теперь не видно раздел, то создаём таблицу структуры разделов. Для этого используем программу fdisk.
Так как это дело индивидуальное, то рассмотрим только один случай. Другую информацию вы можете найти в интернете или на форуме.
- Предположим что не видно ТОЛЬКО системный раздел.
- Входим в режим редактирования таблицы разделов жёсткого диска.
Welcome to fdisk (util-linux 2.24). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Команда (m для справки): p Disk /dev/sda: 20,6 GiB, 22109421568 bytes, 43182464 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00010ef0 Устр-во Загрузочный Start Конец Blocks Id System /dev/sda2 20533212 43166654 11316721+ 5 Extended /dev/sda5 20533248 24643709 2055231 82 Linux swap / Solaris /dev/sda6 24647680 43166654 9259487+ 83 Linux Команда (m для справки): n Partition type: p primary (0 primary, 1 extended, 3 free) l logical (numbered from 5) Select (default p): p Номер раздела (1,3,4, default 1): 1 First sector (2048-43182463, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-20533211, default 20533211): Created a new partition 1 of type 'Linux' and of size 9,8 GiB. Команда (m для справки): p Disk /dev/sda: 20,6 GiB, 22109421568 bytes, 43182464 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00010ef0 Устр-во Загрузочный Start Конец Blocks Id System /dev/sda1 2048 20533211 10265582 83 Linux /dev/sda2 20533212 43166654 11316721+ 5 Extended /dev/sda5 20533248 24643709 2055231 82 Linux swap / Solaris /dev/sda6 24647680 43166654 9259487+ 83 Linux Команда (m для справки): w The partition table has been altered. Calling ioctl() to re-read partition table.
- Что здесь происходило:
- Сперва посмотрели список всех доступных разделов. Команда: p Увидели что нет раздела /dev/sda1.
- Затем создали новый раздел. Команда n При этом программа спросила:
- какой раздел создаём. Ответили p основной
- номер раздела. Ответили 1.
- номер первого сектора на диске. Ответили кнопкой <Enter> и она подставила значение по умолчанию.
- номер последнего сектора на диске, или смещение или размер. Ответили кнопкой <Enter> и она подставила значение по умолчанию.
- Затем программа сообщила что раздел создан.
- Снова посмотрели список всех доступных разделов. И убедились что запись для /dev/sda1 теперь создана.
- Затем записали изменения на диск. Команда w
- После этого может понадобиться перезагрузка компьютера.
Форматируем раздел.
вся информация будет потеряна.
И подключаем его.
Для примера, резервная копия находится на /dev/sdb1 который подцеплен к /media/sdb1
Распаковываем копию
Видим на экране упорядоченный хаос :) Ждём завершения.
Теперь список файлов на месте, но этого ещё не достаточно.
Восстановим загрузчик. Если уверены что с ним всё в порядке, переходите сразу к следующему абзацу.
- Для этого сначала подключим необходимые нам устройства. Затем перейдём в chroot.
mkdir dev proc sys
mount --bind /dev dev
mount --bind proc /proc proc
mount --bind sysfs /sys sys
- Теперь находимся в chroot окружении.
- Запускаем grub
- Рассмотрим наиболее частый случай, когда первая часть загрузчика находится в "главной загрузочной записи", а его вторая часть на системном разделе.
Если у вас по-другому, то попробуйте применить полученные знания для своего случая, или поищите информацию в интернете.
Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> root (hd0,0) root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 20 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+20 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. grub>quit quit
- Что здесь происходило.
- После запуска, мы попали в оболочку программы grub, где она представилась и выдала приглашение о готовности.
- Затем ввели команду root (hd0.0) которая указала программе, что наш системный раздел на котором загрузчик должен искать свои файлы будет в /dev/sda1.
- После этого ввели команду setup (hd0) которая указала программе запустить установку первой части загрузчика в MBR. После этого программа проверила доступность всех необходимых ей файлов и выдала результат, а так же намекнула что всё прошло успешно.
- После этого ввели команду quit что означает, выйти из оболочки программы.
Исправляем идентификатор.
- При загрузке система определяет где какой раздел, либо по имени, например /dev/sda1, либо по, так называемому, уникальному идентификатору. Если она его не узнает, то соответственно загрузиться не сможет. Давайте это исправим.
- Для начала определим, какие идентификаторы нам нужны.
- Для примера, вывод такой:
/dev/sda1: UUID="c4c24c57-0fcf-45b1-8c12-7b09e80af406" TYPE="ext4" PARTUUID="00010ef0-01" /dev/sda5: UUID="69a45232-c25c-4274-87ef-6e47aaab7dde" TYPE="swap" PARTUUID="00010ef0-05" /dev/sda6: UUID="96cfe508-66bd-4c54-bbab-171fbf77d40b" TYPE="ext4" PARTUUID="00010ef0-06" /dev/loop0: TYPE="squashfs" /dev/sdb1: UUID="74a7e2ae-ffc4-474d-b7f7-998d7551f408" TYPE="ext4" PARTUUID="7cbfb48a-01" /dev/sr0: UUID="2014-01-30-23-39-06-00" LABEL="Mageia-4-KDE4-LiveDVD" TYPE="iso9660" PTUUID="1f385bfa" PTTYPE="dos"
- Для нормальной загрузки системы достаточно поправить идентификатор только у системного раздела, раздела подкачки и возможно раздела на котором находятся файлы загрузчика GRUB.
- Рассмотрим всего один вариант. Файлы загрузчика находится в системном разделе и используется загрузчик grub версии <= 0.99.
Если этот вариант вам не подходит попробуйте применить описание для своего варианта, либо поищите информацию в интернете, либо спросите на форуме.
- Нам нужно изменить три файла.
- 1. файл конфигурации загрузчика /boot/grub/menu.lst.
- 2. файл конфигурации программы монтирования /etc/fstab.
- 3. файл конфигурации системы dracut, /etc/dracut.conf,d/51-mageia-resume.conf, только если изменился идентификатор раздела подкачки.
- Вот так, для примера, выглядит /boot/grub/menu.lst
timeout 10 color black/cyan yellow/cyan gfxmenu (hd0,0)/boot/gfxmenu default 0 title linux kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=4f5d2c58-491e-404a-9872-fe39d1b3ab49 splash quiet resume=UUID=69a45232-c25c-4274-87ef-6e47aaab7dde vga=788 root (hd0,0) initrd /boot/initrd.img title linux-nonfb kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux-nonfb root=UUID=4f5d2c58-491e-404a-9872-fe39d1b3ab49 resume=UUID=69a45232-c25c-4274-87ef-6e47aaab7dde root (hd0,0) initrd /boot/initrd.img title failsafe kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=failsafe root=UUID=4f5d2c58-491e-404a-9872-fe39d1b3ab49 failsafe root (hd0,0) initrd /boot/initrd.img title desktop 3.12.8-2.mga4
- Для нормальной загрузки необходимо изменить только одну строку в разделе title linux
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=4f5d2c58-491e-404a-9872-fe39d1b3ab49 splash quiet resume=UUID=69a45232-c25c-4274-87ef-6e47aaab7dde vga=788
- на
kernel (hd0,0)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=c4c24c57-0fcf-45b1-8c12-7b09e80af406 splash quiet resume=UUID=69a45232-c25c-4274-87ef-6e47aaab7dde vga=788
- Вот так, для примера, выглядит /etc/fstab до изменения
# Entry for /dev/sda1 : UUID=4f5d2c58-491e-404a-9872-fe39d1b3ab49 / ext4 acl,relatime 1 1 # Entry for /dev/sda6 : UUID=96cfe508-66bd-4c54-bbab-171fbf77d40b /home ext4 relatime,acl 1 2 none /proc proc defaults 0 0 # Entry for /dev/sda5 : UUID=69a45232-c25c-4274-87ef-6e47aaab7dde swap swap defaults 0 0
- и после
# Entry for /dev/sda1 : UUID=c4c24c57-0fcf-45b1-8c12-7b09e80af406 / ext4 acl,relatime 1 1 # Entry for /dev/sda6 : UUID=96cfe508-66bd-4c54-bbab-171fbf77d40b /home ext4 relatime,acl 1 2 none /proc proc defaults 0 0 # Entry for /dev/sda5 : UUID=69a45232-c25c-4274-87ef-6e47aaab7dde swap swap defaults 0 0
- Вот так выглядит /etc/dracut.conf,d/51-mageia-resume.conf
add_device+="UUID=69a45232-c25c-4274-87ef-6e47aaab7dde"
- Так как UUID раздела подкачки не изменился, то ничего не меняем.
- После этого нам нужно пересобрать initrd
:Ждём завершения работы команды.
Затем выходим из окружения chroot
Отцепляем устройства :)
umount /media/sda1/proc
umount /media/sda1/sys
umount /media/sda1
Вот и всё.
Можно перезагружать компьютер.
Авторов статьи вы можете узнать на странице истории
Поругать или поблагодарить, на форуме русского сообщества Mageia