1

В прошлый раз, когда я сократил раздел, это было так же просто, как удалить его и воссоздать из того же начального сектора. Но на этот раз fdisk не позволит воссоздать раздел из сектора 63, он заставляет как минимум 2048.

Обратите внимание, что я работаю на автономном сервере, и gparted не вариант, потому что это графический интерфейс.

  • Почему это поведение от fdisk?
  • Будет ли использование 2048 причиной потери данных?
  • Любое решение или решение для сокращения раздела?

root@ubuntulive:~# fdisk -u=sectors /dev/sda

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
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0ab2afe6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   104872319    52436128+  83  Linux
/dev/sda2       104872320   113274314     4200997+  83  Linux
/dev/sda3       113274315   312576704    99651195   83  Linux

Command (m for help): d
Partition number (1-4): 1

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-312581807, default 2048): 63
Value out of range.
First sector (2048-312581807, default 2048):  
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104872319, default 104872319): 52436159

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
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0ab2afe6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    52436159    26217056   83  Linux
/dev/sda2       104872320   113274314     4200997+  83  Linux
/dev/sda3       113274315   312576704    99651195   83  Linux

4 ответа4

1

Почему это поведение от fdisk?

Производительность на некоторых моделях жестких дисков

Будет ли использование 2048 причиной потери данных?

Если это корневой раздел, он все равно не сможет загрузиться.

Любое решение или решение для сокращения раздела?

Используйте parted вместо fdisk. Будьте осторожны, в отличие от fdisk, расстались писать изменения на лету !

(parted) p                                                                
Model: ATA Hitachi HTS72501 (scsi)
Disk /dev/sda: 160041885696B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start         End            Size           Type     File system     Flags
 1      32256B        53694627839B   53694595584B   primary  ext4            boot
 2      53694627840B  57996449279B   4301821440B    primary  linux-swap(v1)
 3      57996449280B  160039272959B  102042823680B  primary  xfs

(parted) rm 1
(parted) mkpart primary 32256B 28998224639B                               
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore                                                     
(parted) p                                                                
Model: ATA Hitachi HTS72501 (scsi)
Disk /dev/sda: 160041885696B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start         End            Size           Type     File system     Flags
 1      32256B        28998224895B   28998192640B   primary  ext4
 2      53694627840B  57996449279B   4301821440B    primary  linux-swap(v1)
 3      57996449280B  160039272959B  102042823680B  primary  xfs

Предупреждение !!

Я думал, что ext4 не будет фрагментировать так много (на самом деле он имел только 0,1% несмежных блоков), поэтому я не запускал resize2fs.

Сначала я сделал это и не смог снова смонтировать /dev /sda1. (После смеха) Я воссоздал раздел в его первоначальном размере, запустил e2fsck и решил запустить resize2fs, прежде чем пытаться снова расстаться, и это сработало.

Помните, мы просто редактируем таблицу разделов с помощью parted/fdisk, не изменяя какие-либо физические данные.

Это безголовый сервер, после перезагрузки он не будет пинговать. Я решил больше не перезагружаться в режиме восстановления, так как это может прервать загрузку fsck, поэтому я пошел спать. На следующее утро я обнаружил, что сервер снова работает.

0

Вы можете использовать GParted для изменения размера файловой системы и раздела одновременно. ИМХО, как правило, это лучшее решение, потому что оно оставляет меньше места для человеческой ошибки. Обратите внимание, однако, что если вы используете выравнивание MiB в GParted (и, возможно, даже если вы этого не сделаете), он, вероятно, попытается сместить начало раздела в сектор 2048. Это приведет к большому количеству дополнительных перемещений данных, которые отнимают много времени и сопряжены с риском. OTOH, это может быть желательно, если это загрузочный диск, и вы хотите установить более новую версию GRUB - некоторые версии теперь требуют больше места после MBR, чем 62 сектора, которые у вас есть сейчас. (Однако вы можете продолжать использовать более старые GRUB или LILO с вашим текущим диском.)

Если вы должны сделать это с помощью fdisk , попробуйте использовать более старый дистрибутив (или хотя бы более старую версию fdisk). Более новые версии fdisk , по-видимому, не предоставляют способ указать начальный сектор настолько маленьким, насколько вы хотите использовать, хотя это совершенно законно и было стандартом до недавнего времени (2-3 года назад для Linux; до Windows XP для Windows). Будьте осторожны с юнитами - старые версии fdisk по умолчанию использовали фиктивные значения "цилиндров". Эти значения неточны, и частичные изменения в fdisk означают, что вы не можете получить ожидаемое поведение с некоторыми промежуточными версиями.

0

У меня также была проблема в том, что я не мог сохранить исходный стартовый блок. Я использовал cfdisk . cfdisk может сделать это правильно и намного проще, чем fdisk ! Просто выберите «изменить размер» и введите объем дискового пространства. И «напишите», когда вы будете довольны своей конфигурацией. Это оно! И, как вы можете видеть, у него нет недостатка в написании на лету.

0

Любое [...] решение для сокращения раздела?

Создайте заново раздел с начальным сектором по умолчанию (2048) и соответствующим конечным сектором. Помните, что это изменение ожидает до тех пор, пока вы не напишите таблицу разделов, поэтому не имеет значения, что это еще не 63 . Затем дайте команду x которая

x   extra functionality (experts only)

Теперь m отпечатки (между прочим):

b   move beginning of data in a partition

Используйте b , вам будет разрешено ввести 63 . Вернитесь в главное меню с помощью r . В этот момент p должен показать вам 63 в качестве стартового сектора. Если все выглядит хорошо, запишите изменения на диск с помощью w .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .