суббота, 28 мая 2011 г.

GPT

Если на диск записана GPT таблица разделов, и fdsik ругается на

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

не смотря на то что была записана новая таблица, делаем следующее:

Немного теории

Первичный раздел GPT записывается в LBA 1, а вторичный в LBA -1, поэтому даже если создается новая таблица (только в начало диска), данные в LBA -1 всё равно остаются и софт может сетовать на наличие GPT.

Лечится так:

Начало диска перезаписываем msdos таблицей

# parted /dev/sda

(parted) mklabel

New disk label type? [gpt]? msdos

(parted) quit

А последние 512 байт нулями

Смотрим сколько всего 512-байтных секторов на диске:

# fdisk -lu /dev/sda

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sda: 2995.7 GB, 2995739688960 bytes
255 heads, 63 sectors/track, 364211 cylinders, total 5851054080 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0×00000000

Device Boot Start End Blocks Id System
/dev/sda1 1 4294967295 2147483647+ ee EFI GPT

и перезаписываем последний нулями

# dd if=/dev/zero of=/dev/sda bs=512 seek=5851054078
dd: writing `/dev/sda': No space left on device
3+0 records in
2+0 records out
1024 bytes (1.0 kB) copied, 0.00062105 s, 1.6 MB/s

Также, вместо затирания начала таблицей, можно переписать:

# dd if=/dev/zero of=/dev/sda bs=512 count=2
2+0 records in
2+0 records out
1024 bytes (1.0 kB) copied, 0.000346691 s, 3.0 MB/s