Изменение размера загрузочного раздела с полным шифрованием диска

12

Я видел ответы на общий вопрос, касающийся изменения размера загрузочного раздела. В моем случае я установил Ubuntu 12.04 Alternate с полным шифрованием диска. Поскольку диск не может быть подключен во время операции изменения размера, не повредит ли это основной раздел?

У меня есть все резервные копии, поэтому я мог бы сделать переустановку, но я не знаю, как указать размер загрузочного раздела до шифрования.

Том Стоун
источник

Ответы:

3

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

Установщик Ubuntu ubiquityиспользует partmanдля разметки. Когда выбрана опция «Использовать весь диск», конфигурации разделов приходят из файлов рецептов partman на /lib/partman/recipes-[arch]/*и /lib/partman/recipes/*на live CD. Найдите рецепт, используемый установщиком, и измените максимальный размер /bootраздела. В моей системе по умолчанию используется рецепт /lib/partman/recipes/30atomic. Откройте Терминал:

ubuntu@ubuntu:~$ sudo nano /lib/partman/recipes/30atomic

Перейдите в раздел для загрузочного раздела и измените третье число (256 ниже) на нужный вам размер (я бы рекомендовал не менее 512):

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

В этом разделе говорится, что размер будет между 128M и 256M с приоритетом 512, что определяет, насколько важен размер этого раздела по сравнению с другими.

Сохраните его с Ctrl+ O, Enter. Затем запустите установщик, установите как обычно.

mkayaalp
источник
2

Я предполагаю, что под полным шифрованием диска вы подразумеваете наличие небольшого незашифрованного загрузочного раздела и другого раздела, который является физическим томом для шифрования (dm-crypt). Если между ними нет свободного места, вы не сможете изменить размер зашифрованного раздела, не создавая проблем, чтобы создать больше места для / boot.

Посмотрите на мой ответ здесь - это может помочь.

Марчин Камински
источник
0

Да, изменение размера загрузки возможно, но это очень сложно. Я бы попытался сделать это только после резервного копирования ВСЕХ ваших данных. Если вы допустили ошибку, вероятность потери данных достаточно высока. Вам понадобится готовый загрузочный 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.

  1. Сжать корневую файловую систему в разделе # 3
  2. Изменил размер раздела №3 (чтобы он был меньше)
  3. Создан раздел # 4 того же размера (в конце диска)
  4. Использовал DD для копирования секторов раздела # 3 в раздел # 4
  5. Удалил раздел № 3, чтобы освободить место на диске
  6. Используется Gparted для изменения размера и перемещения разделов № 1 и № 2
  7. Создан новый раздел № 3 того же размера, что и сжатый № 3 (или раздел № 4)
  8. Использовал DD для копирования секторов раздела # 4 в раздел # 3
  9. Удалить раздел # 4
  10. Увеличьте размер раздела # 3 до исходного размера # 3
  11. Обновлена ​​файловая система, содержащаяся в зашифрованном разделе # 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.

доктор
источник
Загрузочный раздел не должен быть незашифрованным. У меня нет отдельного раздела / boot, это всего лишь часть моих основных зашифрованных rootfs. Grub может загружаться в такой конфигурации просто отлично. Я загружаюсь с моего 1 MiB EFI раздела. И хотя изменение размера / загрузки занимает примерно эти шаги, нет необходимости делать их вручную. Вы можете просто использовать KDE Partition Manager 3.0 для выполнения всех этих шагов. Например, я выполняю здесь некоторые операции с моими зашифрованными rootfs изнутри системы, даже не используя live cd youtube.com/watch?v=FKCQ7pJN1vY Хотя live cd необходим для перемещения раздела luks.
Андрюс Штиконас