Answers:
我知道这个问题很旧,但是在搜索小型启动分区问题并使用磁盘加密时出现。
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。然后启动安装程序,照常安装。
是的,可以调整启动大小,但这非常复杂。我只会在备份所有数据后才尝试这样做。如果您输入有误,则可能会丢失数据。您将需要准备一些可引导的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上的多个分区进行加密”
当您发现需要更改分区时,我发现这篇文章很有帮助。
“如何调整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的大小。
这样,我可以删除分区#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。