LINUX.ORG.RU

Восстановить таблицу разделов

 , ,


0

2

Случайно записал образ компакт диска на жесткий диск, в самое начало. Остановил практически сразу, ничего страшного не произошло. Винду восстановил. Grub тоже. Осталась проблема с таблицей разделов. Теперь gparted не видит вообще разделов. Только один с файловой системой udf. Если нажать на этот раздел, то

Unable to read the contents of this file system!
Because of this some operations may be unavailable.
The cause might be a missing software package.
The following list of software packages is required for udf file system support:  udftools.

В выводе fdisk cfdisk ничего плохого не вижу

cfdisk /dev/sda

Disk: /dev/sda
                         Size: 149.5 GiB, 160041885696 bytes, 312581808 sectors
                                   Label: dos, identifier: 0x68d6671d

    Device          Boot             Start           End       Sectors     Size    Id Type
>>  /dev/sda1       *                 2048     207720447     207718400      99G     7 HPFS/NTFS/exFAT   
    /dev/sda2                    207722494     312580095     104857602      50G     5 Extended
    |-/dev/sda5                  207722496     270530223      62807728      30G    83 Linux
    `-/dev/sda6                  270530560     312580095      42049536    20.1G    83 Linux

fdisk -l /dev/sda

Disk /dev/sda: 149.5 GiB, 160041885696 bytes, 312581808 sectors
Disk model: WDC WD1600BEVT-2
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: 0x68d6671d

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         2048 207720447 207718400   99G  7 HPFS/NTFS/exFAT
/dev/sda2       207722494 312580095 104857602   50G  5 Extended
/dev/sda5       207722496 270530223  62807728   30G 83 Linux
/dev/sda6       270530560 312580095  42049536 20.1G 83 Linux

gpart /dev/sda

** Error: invalid extended ptbl found at sector(207722494).

Begin scan...
Possible partition(Windows NT/W2K FS), size(101424mb), offset(1mb)
Possible partition(Windows NT/W2K FS), size(101424mb), offset(101425mb)

*** Fatal error: dev(/dev/sda): seek failure.

Исправить как то можно это?

Ответ на: комментарий от anonymous

Злые вы. А мне виндузятники помогали восстановить. Советовали прогу DMDE. Она находит разделы призраки и можно в разметку вернуть. https://dmde.com/download.html Ну и линуксовые утилиты должны уметь, использовать их к счастью не доводилось.

antianon ()

Запустите wipefs с параметром -n, посмотрите, что он будет затирать. Если затрёт только udf, то запускайте без -n. Затем следует создать разметку заново, указав смещения и размеры разделов, которые были до записи ISO-файла на диск.

ValdikSS ★★★★★ ()
Ответ на: комментарий от antianon

Если быть точнее, есть русский сайт https://dmde.ru/download.html там есть русская линуксовая версия: консольная (псевдографика, как mc) и гуишная, инструкция https://dmde.ru/manual/partitions.html запускай через sudo.
Тебе нужна опция «Вставить раздел (Undelete)» насколько я понял. Возможно потребуется сделать «полное сканирование», но обычно это не нужно. На всякий случай предварительно выбери «Сохранить текущую разметку в файл».

antianon ()
Последнее исправление: antianon (всего исправлений: 2)

Осталась проблема с таблицей разделов. Теперь gparted не видит вообще разделов. Только один с файловой системой udf. Если нажать на этот раздел, то
Винду восстановил

В винде я так понял ищешь? Это к биллу... Остался у тебя груб от прежней системы линукс ...Ж) Хотя его можно реанимировть. любым диструбом. Я про груб

Bootmen ★★☆ ()
Последнее исправление: Bootmen (всего исправлений: 3)
Ответ на: комментарий от anonymous

Для защиты от такого надо сделать бэкап загрузочного сектора (первые несколько мб). А между началом диска и первым разделом зазор в пару Гб. Главное успеть вовремя остановится, чтобы до первого раздела не добралось. Если зазор будет гигов 5, то вообще не страшно. Ну и первый раздел должен быть системный (без важных данных), чтобы его не жалко было потерять, если исправить не получится.

antianon ()
Ответ на: комментарий от ValdikSS

Сейчас вывод wipefs такой:

wipefs /dev/sda

DEVICE OFFSET TYPE UUID LABEL

sda 0x8001 udf 885ee0004d532055 GRMCENVOL_RU_DV

sda 0x1fe dos

sda 0x1d2 atari

Нужно сделать так??

1 делаю бекап таблицы разделов sfdisk -d /dev/sda > mbr.bin

2 стираю таблицу разделов wipefs -n /dev/sda

3 восстанавливаю таблицу разделов sfdisk /dev/sda < mbr.bin

SANyaSmol ()
Последнее исправление: SANyaSmol (всего исправлений: 2)
Ответ на: комментарий от vel

Да, попробовал testdisk. Он удалил extended разделы, сделал их логическими, еще и нумерацию разделов поменял.

fdisk -l /dev/sda

Диск /dev/sda: 149,5 GiB, 160041885696 байт, 312581808 секторов
Disk model: WDC WD1600BEVT-2
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x68d6671d

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1  *                2048 207720447 207718400    99G             7 HPFS/N
/dev/sda2              207722496 270530559  62808064    30G            83 Linux
/dev/sda3              270530560 312580095  42049536  20,1G            83 Linux

gparted все равно видит какой udf файловая система. Не знаю как сюда скриншот прицепить, но вот вывод просто parted. Он ничго плохого не видит

parted /dev/sda

GNU Parted 3.3
Используется /dev/sda
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.
(parted) print                                                            
Модель: ATA WDC WD1600BEVT-2 (scsi)
Диск /dev/sda: 160GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Флаги диска: 

Номер  Начало  Конец  Размер  Тип      Файловая система  Флаги
 1     1049kB  106GB  106GB   primary  ntfs              загрузочный
 2     106GB   139GB  32,2GB  primary  ext4
 3     139GB   160GB  21,5GB  primary  ext4

SANyaSmol ()
Ответ на: комментарий от Bootmen

с грубом вообще нет проблем. Загрузился с лайф сд, чмод на корневой раздел, груб инсталл, все дела. проблема с таблицей разделов, как оттуда убрать остатки от образа сд диска

SANyaSmol ()
Ответ на: комментарий от SANyaSmol

4 раздела можно без extended

нумерация разделов мало на что влияет. Если в fstab у тебя по именам девайвов, то подправь fstab.

В конфиге grub-a нужно будет подправить имя устройства.

Если все 3 раздела монтруются в RO и все файлы читаются, значит все хорошо.

Про udf - у тебя есть примерно 1 Мб неиспользуемого места перед 1-м разделом. Если его очистить (кроме mbr), то gparted не будет ругаться. Это ни на что не должно влиять.

vel ★★★★★ ()
Ответ на: комментарий от SANyaSmol

Вроде все получилось.

1. на всякий случай, полностью mbr & partition table

sfdisk --backup /dev/sda

Welcome to sfdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Checking that no-one is using this disk right now ... OK

Backup files:
         MBR (offset     0, size   512): /root/sfdisk-sda-0x00000000.bak

Disk /dev/sda: 149.5 GiB, 160041885696 bytes, 312581808 sectors
Disk model: WDC WD1600BEVT-2
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: 0x68d6671d

Old situation:

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         2048 207720447 207718400   99G  7 HPFS/NTFS/exFAT
/dev/sda2       207722496 270530559  62808064   30G 83 Linux
/dev/sda3       270530560 312580095  42049536 20.1G 83 Linux

Type 'help' to get more information.

partition table

sfdisk /dev/sda > sfdisk-part-table

2. wipefs --all --backup /dev/sda

/dev/sda: 5 bytes were erased at offset 0x00008001 (udf): 43 44 30 30 31
/dev/sda: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sda: 4 bytes were erased at offset 0x000001d2 (atari): 83 fe ff ff
/dev/sda: calling ioctl to re-read partition table: Success

3 sfdisk /dev/sda < sfdisk-part-table

Checking that no-one is using this disk right now ... OK

Disk /dev/sda: 149.5 GiB, 160041885696 bytes, 312581808 sectors
Disk model: WDC WD1600BEVT-2
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x68d6671d.
/dev/sda1: Created a new partition 1 of type 'HPFS/NTFS/exFAT' and of size 99 GiB.
Partition #1 contains a ntfs signature.
/dev/sda2: Created a new partition 2 of type 'Linux' and of size 30 GiB.
Partition #2 contains a ext4 signature.
/dev/sda3: Created a new partition 3 of type 'Linux' and of size 20.1 GiB.
Partition #3 contains a ext4 signature.
/dev/sda4: Done.

New situation:
Disklabel type: dos
Disk identifier: 0x68d6671d

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         2048 207720447 207718400   99G  7 HPFS/NTFS/exFAT
/dev/sda2       207722496 270530559  62808064   30G 83 Linux
/dev/sda3       270530560 312580095  42049536 20.1G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Все теперь ок, gparted запускается, нет никакого udf типа данных. Только между разделами появилось пустое место какое то непонятное. Ну и разделы все теперь логичские, нет экстендед

fdisk -l /dev/sda

Disk /dev/sda: 149.5 GiB, 160041885696 bytes, 312581808 sectors
Disk model: WDC WD1600BEVT-2
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: 0x68d6671d

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         2048 207720447 207718400   99G  7 HPFS/NTFS/exFAT
/dev/sda2       207722496 270530559  62808064   30G 83 Linux
/dev/sda3       270530560 312580095  42049536 20.1G 83 Linux

cfdisk /dev/sda

Disk: /dev/sda
             Size: 149.5 GiB, 160041885696 bytes, 312581808 sectors
                       Label: dos, identifier: 0x68d6671d

    Device      Boot       Start        End    Sectors   Size Id Type
>>  /dev/sda1   *           2048  207720447  207718400    99G  7 HPFS/NTFS/exFAT
    Free space         207720448  207722495       2048     1M
    /dev/sda2          207722496  270530559   62808064    30G 83 Linux
    /dev/sda3          270530560  312580095   42049536  20.1G 83 Linux

Теперь восстановить экстендед разделы, и с пустым местом разобраться, и все ок будет. В общем , тема закрыта, всем спасибо за подсказки!

SANyaSmol ()