通过全盘加密调整引导分区的大小


12

我已经看到了有关调整启动分区大小的一般问题的答案。就我而言,我已经安装了具有完整磁盘加密功能的Ubuntu 12.04 Alternate。由于在调整大小操作期间无法安装驱动器,这不会损坏主分区吗?

我已经备份了所有内容,因此有可能重新安装,但是我不知道如何在加密之前指定启动分区的大小。

Answers:


3

我知道这个问题很旧,但是在搜索小型启动分区问题并使用磁盘加密时出现。

Ubuntu的安装程序ubiquity使用partman的分区。当选择“使用整个磁盘”选项时,分区配置来自实时CD 中/lib/partman/recipes-[arch]/*及其/lib/partman/recipes/*上的partman配方文件。找到安装程序使用的配方,然后修改/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。然后启动安装程序,照常安装。


2

我认为通过全盘加密,您的意思是有一个小的未加密启动分区,另一个分区是用于加密的物理卷(dm-crypt)。如果它们之间没有任何空间,则将无法无损地调整加密分区的大小以为/ boot创建更多空间。

这里看看我的答案-这可能会有帮助。


0

是的,可以调整启动大小,但这非常复杂。我只会在备份所有数据后才尝试这样做。如果您输入有误,则可能会丢失数据。您将需要准备一些可引导的Ubuntu实时USB / CD,因为在引导到实时USB / CD后应该执行这些操作。

当Linux社区更改有关启动分区所需大小的要求时,我发现了一段时间的困难方法。以前,启动时100-200 MB就足够了,但是社区将其大小要求提高了一倍。这影响了遵循先前准则的用户。

/server/334663/what-is-the-recommended-size-for-a-linux-boot-partition

有关/ boot的当前要求,请参考官方指南。

https://help.ubuntu.com/community/DiskSpace

在撰写本文时,准则建议将/ boot从250MB的空间引导到1GB的空间。我建议使用一个具有最大所需空间的单独的引导分区。引导分区在引导过程中需要未加密。引导过程将沿途安装不同的加密分区,例如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分区,因此无法使用命令行或GUI上的gparted命令来完成此操作。我发现您可以使用gparted创建分区,然后使用dd逐个扇区地复制加密的分区。这确实涉及能够根据扇区计算分区大小。犯错意味着丢失数据并重新安装。

就我而言,我需要将引导分区的大小从537MB增加到1GB。从Ubuntu 12.04升级到14.04时,我需要这样做,以便Ubuntu升级可以在/ boot上找到足够的空间。是的,您可以删除autoremove以释放/ 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

我在第3部分中拥有LUKS加密磁盘,而在分区#1中有我的引导程序,因此没有足够的空间来扩展/ boot。注意Gparted无法移动分区3,因为它是加密分区。为了解决这个问题,我在磁盘末尾以扇区为单位创建了第四个分区,并使用dd将分区3的内容复制到分区4。我发现将根的大小调整为必要的最小大小很有用。因此,我执行了以下操作来解决/ boot的大小。

  1. 将根文件系统缩小到#3分区中
  2. 调整#3分区的大小(缩小)
  3. 创建了一个相同大小的#4分区(在磁盘末尾)
  4. 使用DD将#3分区的扇区复制到#4分区
  5. 删除#3分区以释放磁盘空间
  6. 使用Gparted调整大小和移动#1和#2分区
  7. 创建了与缩小的#3(或#4分区)大小相同的新的#3分区
  8. 使用DD将#4分区的扇区复制到#3分区
  9. 删除#4分区
  10. 将#3分区的大小扩展到原始的#3大小
  11. 将#3加密分区中包含的文件系统更新为剩余空间

这样,我可以删除分区#3,并使用gparted移动和扩大分区#1和#2。通读以上指南应该会提供足够的见解,以助您前进。它未在此处显示,但是在收缩根分区时,我删除了同一分区上的交换卷组,并在最后重新创建了它。所有这些都是在引导至Linux Live USB闪存驱动器时完成的。以下是我在上面的指南中未提供的一些笔记。

我发现blockdev在显示扇区中分区的大小方面很有用。这在我计算扇区大小时对我有帮助。

sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

Gparted命令“ unit s”将按扇区显示分区表。所有分区的大小,删除和创建都是使用Gparted完成的。这样,您可以在部门中进行所有数学运算。如果您想查看扇区数学的样子,“单元契约”将切换回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在DD复制之前创建#4分区。缩小可以释放该副本更多的磁盘空间。

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分区,然后在扩大的#1和#2分区之后在新的扇区位置重新创建分区#3。再次使用blockdev来测量扇区大小。我创建了这个#3分区,其大小与原来小于#3的#4分区相同。使用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分区启动。虽然调整/ boot的大小大致需要执行这些步骤,但无需手动进行操作。您可以只使用KDE Partition Manager 3.0来执行所有这些步骤。如我,甚至没有使用的Live CD执行从系统内部在这里的一些操作上我的加密的根文件系统youtube.com/watch?v=FKCQ7pJN1vY虽然现场光盘需要移动陆氏分区。
AndriusŠtikonas17年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.