Да, изменение размера загрузки возможно, но это очень сложно. Я бы попытался сделать это только после резервного копирования ВСЕХ ваших данных. Если вы допустили ошибку, вероятность потери данных достаточно высока. Вам понадобится готовый загрузочный Ubuntu live USB / CD, так как вы должны выполнять эти операции после загрузки с live USB / CD.
Некоторое время назад я узнал о том, как сообщество linux изменило требования к требуемому размеру загрузочного раздела. Ранее для загрузки было достаточно 100-200 МБ, но затем сообщество удвоило требования к размеру. Это повлияло на пользователей, которые следовали предыдущим рекомендациям.
/server/334663/what-is-the-recommended-size-for-a-linux-boot-partition
Для текущих требований к / boot я бы сослался на официальные инструкции.
https://help.ubuntu.com/community/DiskSpace
На момент написания этой статьи руководство рекомендовало / загрузиться с 250 МБ до 1 ГБ пространства. Я бы порекомендовал отдельный загрузочный раздел с наибольшим требуемым пространством. Загрузочный раздел должен быть незашифрован во время процесса загрузки. В процессе загрузки будут монтироваться разные зашифрованные разделы, например, зашифрованные диски LUKS или зашифрованные каталоги HOME, и между этими подходами есть разница. По моему опыту, использование различных вариантов шифрования жесткого диска Ubuntu приводит к проблемам при обновлении Ubuntu, которое позже требует ручного вмешательства.
Для общего обзора я отсылаю вас к этой статье, которую я считаю хорошо написанной.
'LUKS шифрует несколько разделов в Debian / Ubuntu с помощью одной парольной фразы'
https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/
Когда вы обнаружили необходимость изменить разделы, я нашел этот пост очень полезным.
«Как изменить размер зашифрованной файловой системы LUKS»
https://ubuntuforums.org/showthread.php?t=726724
Теперь, поскольку gparted не поддерживает перемещение зашифрованных разделов LUKS, это нельзя сделать с помощью команд gparted из командной строки или графического интерфейса. Я обнаружил, что вы можете использовать gparted для создания разделов, а затем использовать dd для перемещения ваших зашифрованных разделов, используя посекторные копии. Это подразумевает возможность вычисления размеров разделов в разрезе секторов. Ошибка - потеря данных и переустановка.
В моем случае мне нужно увеличить размер загрузочного раздела с 537 МБ до 1 ГБ. Мне нужно это как часть моего обновления с Ubuntu 12.04 до 14.04, чтобы обновление Ubuntu могло найти достаточно места в / boot. Да, вы можете удалить автозагрузку, чтобы освободить место в / boot, но общие требования изменились, поэтому я увеличил загрузку, чтобы приспособиться к этим рекомендациям. Здесь была моя структура разделов.
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 240GB 239GB
У меня есть зашифрованный диск LUKS в разделе № 3 и моя загрузка в разделе № 1, поэтому для расширения / загрузки не хватило места. Примечание. Gparted не может переместить раздел № 3, поскольку он является зашифрованным разделом. Чтобы исправить это, я создал четвертый раздел в конце моего диска того же размера в секторах и использовал dd для копирования содержимого раздела № 3 в раздел № 4. Я нашел полезным изменить размер моего корня до необходимого минимального размера. Таким образом, я выполнил следующие операции для определения размера моего / boot.
- Сжать корневую файловую систему в разделе # 3
- Изменил размер раздела №3 (чтобы он был меньше)
- Создан раздел # 4 того же размера (в конце диска)
- Использовал DD для копирования секторов раздела # 3 в раздел # 4
- Удалил раздел № 3, чтобы освободить место на диске
- Используется Gparted для изменения размера и перемещения разделов № 1 и № 2
- Создан новый раздел № 3 того же размера, что и сжатый № 3 (или раздел № 4)
- Использовал DD для копирования секторов раздела # 4 в раздел # 3
- Удалить раздел # 4
- Увеличьте размер раздела # 3 до исходного размера # 3
- Обновлена файловая система, содержащаяся в зашифрованном разделе # 3, до оставшегося места
Таким образом, я мог удалить раздел № 3 и использовать gparted для перемещения и увеличения разделов № 1 и № 2. Прочтение руководств, приведенных выше, должно помочь вам понять, как двигаться дальше. Здесь это не показано, но при сжатии корневого раздела я удалил группу томов подкачки в том же разделе и заново создал ее в конце. Все это выполняется при загрузке на USB-флеш-накопитель Linux Live. Ниже приведены некоторые из моих заметок, которые не были легко доступны в руководствах выше.
Я нашел blockdev полезным для отображения размера разделов в секторах. Это помогло мне, так как я рассчитывал размеры секторов.
sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712
Команда Gparted 'unit s' отобразит вашу таблицу разделов в секторах. Все размеры, удаление и создание разделов выполняются с помощью Gparted. Таким образом, вы можете просто сделать всю математику в секторах. «Unit compact» переключится обратно в формат MB / GB, если вы хотите посмотреть, как выглядит отраслевая математика.
(parted) unit s
(parted) p
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot
2 1050624s 1550335s 499712s ext2
3 1550336s 456656896s 455106561s
Команда resize2fs имеет отличную опцию для изменения размера до минимума. Кроме того, я удалил свою группу томов подкачки во время этой части.
ubuntu@ubuntu:~$ sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.
При изменении размера таблиц разделов вернитесь и обновите gparted. Использовал 4096 * 2260992 и затем blockdev, чтобы проверить математику здесь. Вот команда gparted.
(parted) resizepart 3
End? [224419843s]? 225970179s
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on failed: No such device or address
(parted) p
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot
2 1050624s 1550335s 499712s ext2
3 1550336s 225970179s 224419844s
Обратите внимание, что размер счетчика секторов в разделе № 3 меньше, чем в моем исходном листинге, т. Е. Таким образом вы можете использовать gparted для создания раздела № 4 перед копией DD. Сокращение освобождает больше места на диске для этой копии.
ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s
После копирования DD, увеличьте размер вашего / boot раздела. Вы удалите исходный раздел № 3, а затем заново создадите раздел № 3 в новом месте сектора после увеличенных разделов № 1 и № 2. Снова blockdev был использован для измерения размеров сектора. Я создал этот раздел # 3 того же размера, что и раздел # 4, который был меньше, чем изначально был # 3. Используйте DD для копирования секторов №4 в раздел №3.
ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624
После копирования удалите раздел # 4 и увеличьте размер раздела # 3. В моем случае я только что восстановил раздел # 3 до размера, который был при запуске. У меня было достаточно места, чтобы сделать это.
(parted) resizepart 3
End? [464349185s]? 464349184s
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on failed: No such device or address
(parted) p
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 4192255s 4190208s fat32 boot
2 5146624s 9242623s 4096000s ext2
3 9242624s 464349184s 455106561s
Когда gparted увеличивает размер раздела, он не обновляет файловую систему. Обратите внимание, что файловая система содержится внутри зашифрованного раздела, поэтому ее необходимо открыть и смонтировать, чтобы внести это изменение. Используйте следующую команду, чтобы исправить это. Это может быть сделано в реальной системе при необходимости.
user@zagyg:/$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.
В заключение, хотя Gparted не поддерживает свою работу изначально, но это невероятно полезный инструмент для управления разделами. На мой взгляд, это немного более полезно, чем fdisk. Между Gparted и DD я смог управлять своими разделами, а затем просто использовать инструменты Ubuntu для обновления с 12.04 LTS до 14.04 LTS.