Серверная (www.it-simple.ru)

Изменение порядка разделов (партиций) на жёстком диске


У нас есть диск с изменённым порядком разделов.

2
EXT3
3
SWAP
4
EXT3
1
NTFS

О чём любезно сообщает fdisk

fdisk -l

[...]

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1           19579       60801   331123747+   7  HPFS/NTFS
/dev/sda2               1        2089    16779861   83  Linux
/dev/sda3            2090        2350     2096482+  82  Linux swap / Solaris
/dev/sda4            2351       19578   138383910   83  Linux

Partition table entries are not in disk order

Приведём диск в порядок, пардон за тавталогию.

Изменение порядка разделов

Сохраним первые 512 байт диска (MBR (http://www.it-simple.ru/?p=4402)), на всякий случай.

dd if=/dev/sda of=sda-boot-512.img bs=512 count=1

Сохраним в образ sda-partitions.img текущую структуру разделов:

dd if=/dev/sda of=sda-partitions.img bs=1 count=64 skip=446

Загрузим из образа три последних раздела на место трёх первых:

dd if=sda-partitions.img of=/dev/sda bs=1 skip=16 seek=446 count=48

а первый - на место последнего:

dd if=sda-partitions.img of=/dev/sda bs=1 seek=494 count=16

Вот теперь наш диск будет выглядеть как надо.

1
EXT3
2
SWAP
3
EXT3
4
NTFS

fdisk -l

[...]

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2089    16779861   83  Linux
/dev/sda2            2090        2350     2096482+  82  Linux swap / Solaris
/dev/sda3            2351       19578   138383910   83  Linux
/dev/sda4           19579       60801   331123747+   7  HPFS/NTFS

Как такое могло получиться?

Неправильный порядок разделов мог сложиться, если, например, на таком диске:

1
NTFS

освободить место в начале

Неразмеченная
область
1
NTFS

и создать новые разделы

2
EXT3
3
SWAP
4
EXT3
1
NTFS

Хотя, конечно, надо по возможности избегать такой кривой разметки.