![ремонт таблицы разделов](https://rvso.com/image/515024/%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2.png)
Я только что перезаписал таблицу разделов жесткого диска моей системы. Я создал раздел cfdisk
на неправильном устройстве ( /dev/sda
вместо /dev/sdd
), удалил все разделы, создал один новый основной раздел, охватывающий все устройство, установил его тип на 07
(NTFS) и нажал write
.
Итак, вот я с работающей системой. Пока я не перезагружу, я надеюсь/полагаю, что ничего не изменится - то есть: все мои данные доступны (сейчас я делаю резервную копию dd
всего устройства и планирую сделать .tar.gz
резервную копию самых важных данных позже). Я также сделал резервную копию /proc/partitions
, /proc/diskstats
(хотя, я думаю, это больше касается пропускной способности и подобных вещей ...) и /sys/block/sda/sda?/{start,size}
.
Вот еще кое-что, что я знаю:
- 4 основных раздела
- 1-й раздел: ~100Мб, ext3, /boot
- 2-й раздел: ~100 Мб, "Загрузочный раздел Win7", ntfs(?)
- 3-й раздел: ~20...30ГБ, Win7, ntfs
- 4-й раздел: ~20...30 ГБ, зашифрованное luks-устройство
- Люкс-дезашифрованное устройство — LVM-PV
- Разделы
/
,/home
&swap
-все являются логическими томами на (VG на) указанном выше физическом томе.
Итак, мои вопросы:
- Какой самый простой способ записать таблицу разделов ядра на диск?
- Какой самый простой способ взять вышеупомянутые (и, возможно, другие, о которых я не знаю...) данные и сгенерировать таблицу разделов?
- Есть ли какие-либо проблемы, связанные с Luks и/или LVM, которые необходимо решить?
- Есть ли какие-либо данные, которые следует сделать резервную копию перед перезагрузкой (имеются в виду данные из ядра [/sys/..., /proc/...] и т. д., которые могут помочь мне восстановить таблицу разделов)?
решение1
Не слишком сложно. Надеюсь.
Прежде всего, обратите внимание на размер и порядок всех разделов на /dev/sda:
challenger:/home/michael # grep . /sys/block/sda/sda*/{start,size}
/sys/block/sda/sda1/start:63
/sys/block/sda/sda2/start:228690000
/sys/block/sda/sda3/start:257040
/sys/block/sda/sda1/size:256977
/sys/block/sda/sda2/size:83885760
/sys/block/sda/sda3/size:228432960
Запустите fdisk на /dev/sda и измените единицы измерения на сектора:
Command (m for help): u
Changing display/entry units to sectors
Затем начните делать разделы. Используйте соответствующие номера start
и size
для каждого раздела.
Избегайте ошибки «на единицу» — вычтите единицу из значения, size
прежде чем вводить его в fdisk.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-312581807, default 63):
Using default value 63
Last sector, +sectors or +size{K,M,G} (63-312581807, default 312581807): +256976
Command (m for help): p
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x02b002af
Device Boot Start End Blocks Id System
/dev/sda1 63 257039 128488+ 83 Linux
Не забудьте задать идентификаторы разделов и переключить флаг загрузки на нужный раздел.
Теперь переустановите MBR, и все будет готово.
Конечно, вы можете сделать все это с помощью вашего любимого редактора разделов... parted тоже отлично подойдет.
Если вы потеряли информацию о начале/конце разделов - в parted есть опции "спасения" для поиска на диске потерянных разделов. Но они вам не понадобятся.
решение2
Если таблица разделов повреждена, я бы предложил использовать загрузочный диск RIP (спасение возможно в Linux) для запуска testdisk. Черт, вы могли бы запустить testdisk из вашей работающей системы, чтобы он просканировал и восстановил разделы, но я бы не стал этого делать, потому что не знаю, что это сделает с работающей системой с открытыми файлами.
Если вы хотите попробовать сделать резервную копию важных данных (у вас их еще нет?), сейчас самое время это сделать...