Сжатие раздела ext4: fdisk не позволит воссоздать раздел в том же стартовом блоке

последний раз, когда я сжимал раздел, это было так же просто, как удалить его и воссоздать его из того же начального сектора. Но на этот раз 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
22
задан Kamil Maciorowski
15.11.2022 12:07 Количество просмотров материала 3156
Распечатать страницу

4 ответа

почему такое поведение 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, поэтому я пошел спать. На следующее утро я нашел резервную копию сервера.

1
отвечен jpic 2022-11-16 19:55

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

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

0
отвечен Rod Smith 2022-11-16 22:12

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

0
отвечен ffonz 2022-11-17 00:29

любое [...] решение для сжатия раздела?

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

x   extra functionality (experts only)

теперь m гравюры (среди прочего):

b   move beginning of data in a partition

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

0
отвечен Kamil Maciorowski 2022-11-17 02:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх