Восстановить / переустановить раздел UEFI после dd в / null

359
aurelia

Разве вы можете догадаться по этому поводу, я дебил. Я разозлился на USB-ключ и попытался отформатировать его разделы с помощью ddи / ноль, но вместо этого я удалил свой sda1иsda2 разделы.

Я быстро осознал свою ошибку и не выключил компьютер, поэтому моя ОС все еще работает.

У меня сейчас только мой sda3

brw-rw---- 1 root disk 8, 0 Jun 6 19:40 /dev/sda brw-rw---- 1 root disk 8, 3 Jun 6 19:40 /dev/sda3 

если я catмой fstabя получаю

# <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/mint--vg-root / ext4 errors=remount-ro 0 1  # /boot was on /dev/sda2 during installation UUID=f16adf40-841d-48de-afb6-bdbe66bd6eae /boot ext2 defaults 0 2  # /boot/efi was on /dev/sda1 during installation UUID=2008-2EBF /boot/efi vfat umask=0077 0 1 /dev/mapper/mint--vg-swap_1 none swap sw 0 0 

Должен сказать, что я немного растерян и не успокоился, пока не понял, как работает UEFI, GRUB и как fstab работает.

Если я сделаю ll /bootэто не пусто:

-rw-r--r-- 1 root root 1249214 Dec 11 15:36 abi-4.4.0-104-generic -rw-r--r-- 1 root root 1243479 Dec 2 2016 abi-4.4.0-53-generic -rw-r--r-- 1 root root 190517 Dec 11 15:36 config-4.4.0-104-generic -rw-r--r-- 1 root root 189877 Dec 2 2016 config-4.4.0-53-generic drwxr-xr-x 2 root root 1024 Jun 23 2017 efi/ drwxr-xr-x 5 root root 1024 Apr 17 23:05 grub/ -rw-r--r-- 1 root root 48667470 Apr 18 07:27 initrd.img-4.4.0-104-generic -rw-r--r-- 1 root root 48377536 Jan 6 14:59 initrd.img-4.4.0-53-generic drwx------ 2 root root 12288 Jun 23 2017 lost+found/ -rw-r--r-- 1 root root 182704 Jan 28 2016 memtest86+.bin -rw-r--r-- 1 root root 184380 Jan 28 2016 memtest86+.elf -rw-r--r-- 1 root root 184840 Jan 28 2016 memtest86+_multiboot.bin -rw------- 1 root root 3887726 Dec 11 15:36 System.map-4.4.0-104-generic -rw------- 1 root root 3874377 Dec 2 2016 System.map-4.4.0-53-generic -rw------- 1 root root 7104112 Dec 11 15:36 vmlinuz-4.4.0-104-generic -rw-r--r-- 1 root root 7065648 Dec 13 2016 vmlinuz-4.4.0-53-generic 

но ll /boot/efi пусто

Нужно ли перемонтировать или воссоздать 2 раздела sda1и sda2? Могу ли я скачать EFI? Что я могу сделать?

0

2 ответа на вопрос

0
Sasha Golikov

Люди делятся на две категории. Они делают резервные копии. Другие уже делают резервные копии. Я считаю, что у вас есть резервная копия.

Вам нужно пересоздать таблицу разделов через интерактив. fdisk Если ваша ОС все еще работает, вы можете получить границы разделов из памяти ядра.

Вот пример из моей рабочей системы (RHEL7 с UEFI):

# fdisk -l /dev/sda   Disk /dev/sda: 300.0 GB, 299966445568 bytes, 585871964 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 262144 bytes / 262144 bytes Disk label type: dos Disk identifier: 0x000a146c  Device Boot Start End Blocks Id System /dev/sda1 * 2048 526335 262144 83 Linux /dev/sda2 526336 1050623 262144 6 FAT16 /dev/sda3 1050624 585871359 292410368 8e Linux LVM 

У вас есть свободная информация / dev / sda1 и / dev / sda2, ниже которой вы можете восстановить. Найдите файлы с информацией о границах:

# find /sys -name start /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda3/start .... 

Начать блок sda1раздела из памяти ядра

# cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start 2048 

Завершить блок sda1раздела из памяти ядра

echo end $(( $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/size) \ + \ $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start) \ - 1 \ )) end 526335 

Начать блок sda2раздела из памяти ядра

# cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start 526336 

Завершить блок sda2раздела из памяти ядра

echo end $((\ $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/size)\ + \ $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start)\ - 1 \ )) end 1050623 

Теперь вам нужно воссоздать потерянные разделы с этими границами с помощью интерактива fdisk. Не забудьте установить тип раздела.

После восстановления разделов вам необходимо проверить их файловые системы. Вы пишете, что / boot / efi пусто, но оно должно быть пустым только в том случае, если вы НЕ используете UEFI. Вы можете попытаться восстановить его с помощью переустановки grub2-efi-x64пакета.

Смотрите эту тему, чтобы продолжить восстановление.

0
AureliaC

Я исправил свою ошибку. Сначала я сохраняю все, что было важно для меня, и на всякий случай создал загрузочный USB-накопитель. Затем я использовал testDisk, и поскольку мои разделы не были перезаписаны, у меня не было проблем с восстановлением таблицы разделов и данных с помощью быстрого поиска (UEFI sda1 и swupdate sda2). Я наконец проверил, что он работал с gparted и перезагрузил мою систему.

Для вашей информации не выполняйте глубокий поиск с помощью testDisk на вашем диске и на вашем диске, он выдаст ошибку и скажет, что ему не хватает места.

К счастью, все в порядке. спасибо за помощь ребята.

Похожие вопросы