如何调整加密LVM的大小以安装另一个Ubuntu副本?

我有一台旧的PowerBook,它已经愉快地运行Ubuntu Server几个月了。 现在我想重新分区硬盘并安装Ubuntu Client,同时保持我现有的安装完好无损。

当我第一次安装Ubuntu时,我选择擦除整个硬盘并将其用作加密的LVM。 现在,安装程序似乎识别驱动器上的分区,但它从不提示我输入LVM的密码。

如何为我当前的安装提供另一个安装空间?

没有用于调整加密分区大小的图形工具。 您可以从命令行手动执行此操作。

必须从Live CD执行加密分区的大小调整,并且Live CD上不包含对加密和LVM的支持。

启动实时(桌面)CD并安装lvm2和cryptsetup。

sudo apt-get update && sudo apt-get install lvm2 cryptsetup 

加载cryptsetup模块。

 sudo modprobe dm-crypt 

解密你的文件系统。

 sudo cryptsetup luksOpen /dev/sda5 crypt1 

获取Live CD以识别(激活)您的LVM。

 sudo vgscan --mknodes sudo vgchange -ay 

您现在可以管理加密分区,安装,复制或执行维护(fsck,备份,resize)。

使用resize2fs减小文件系统的大小(此工具适用于ext2和ext3分区)。 您需要先检查文件系统,然后才能调整其大小。

 sudo e2fsck -f /dev/mapper/hardy-root sudo resize2fs -p /dev/mapper/hardy-root 5g 

将“5g”替换为文件系统的预期大小(以Gb为单位)。

使用e2fsck检查文件系统是否完好无损。

 sudo e2fsck -f /dev/mapper/hardy-root 

减小根(LVM)逻辑卷的大小。 -L标志是您希望减少(LVM)逻辑卷大小的程度,因此请记住这一点。

使用lvdisplay显示您的(LVM)逻辑卷。

 sudo lvdisplay 

注意你需要多少减少你的根(LVM)逻辑卷(在我的情况下它是4.3 Gb)。

 sudo lvreduce -L -4.3G /dev/hardy/root 

注意:您需要将“-4.3G”更改为适当的大小,以将您的(LVM)逻辑卷减少到所需的大小。

重新显示(LVM)逻辑卷以检查最终大小是否正确。

 sudo lvdisplay 

调整(LVM)物理卷的大小。

LVM使用的物理卷可能会“碎片化”,因为(LVM)物理卷中的(LVM)逻辑卷并不总是有序。 没有碎片整理工具,因此如果您可能需要手动移动逻辑分区(备份数据,删除(LVM)逻辑卷,重新创建替换(LVM)逻辑卷,从备份还原数据)。

为了调整(LVM)物理卷的大小,我必须手动移动(删除然后重新创建)交换(LVM)逻辑卷。

使用pvdisplay显示物理卷的大小

 sudo pvdisplay 

删除交换(LVM)逻辑卷

 sudo lvremove /dev/hardy/swap_1 

调整(LVM)物理卷的大小。

 sudo pvresize --setphysicalvolumesize 5.6G /dev/mapper/crypt1 

现在我们将恢复(重新创建)交换(LVM)逻辑卷。

设置(LVM)物理卷的权限以允许分配(如果需要)

 sudo pvchange -xy /dev/mapper/crypt1 

恢复交换(LVM)逻辑卷。

 sudo lvcreate -L 512m -n swap_1 hardy sudo mkswap -L swap_1 /dev/hardy/swap1 

当mkswap命令完成时,它会将新的uuid打印到终端。

使用新的uuid更新fstab(使用任何编辑器)

挂载根(LVM)逻辑卷。

 sudo mount /dev/hardy/root /mnt 

编辑/ etc / fstab

 gksu gedit /mnt//etc/fstab 

将新uuid从终端复制粘贴到fstab,更新交换分区的uuid。 保存并退出gedit卸载根(LVM)逻辑卷

 sudo umount /mnt 

添加(LVM)逻辑卷交换后重新锁定(LVM)物理卷(锁定(LVM)物理卷可防止其更改)。

 sudo pvchange -xn /dev/mapper/crypt1 

调整隐窝的大小。

使用cryptsetup显示您的crypt的大小。

 sudo cryptsetup status crypt1 

这显示了部门中隐藏的大小。 记下偏移量

 offset: 2056 sectors 

使用cryptsetupresize。

 sudo cryptsetup -o 2056 -b 11800000 resize crypt1 -o = offset (get this from the status command) -b = size in sectors. 

使用fdisk调整分区大小。

卸载LVM和crypt:

 sudo vgchange -an sudo cryptsetup luksClose crypt1 

现在可怕的部分,使用fdisk手动调整分区大小。

如果您不熟悉fdisk,我建议您阅读如何使用fdisk进行分区

fdisk不会覆盖数据,因此如果您犯了错误,您应该能够“撤消”更改。

使用fdisk列出分区信息。

 sudo fdisk -l 

将此信息写下来(或打印出来)。

重写你的分区表。 要执行此操作,请使用fdisk删除分区并重新创建它们,但尺寸较小。

 sudo fdisk /dev/sda 

这是我的fdisk会话:

 The number of cylinders for this disk is set to 1305. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (eg, old versions of LILO) 2) booting and partitioning software from other OSs (eg, DOS FDISK, OS/2 FDISK) Command (m for help): d Partition number (1-5): 5 Command (m for help): d Partition number (1-5): 2 Command (m for help): n Command action e extended p primary partition (1-4) e Partition number (1-4): 2 First cylinder (32-1305, default 32): Using default value 32 Last cylinder or +size or +sizeM or +sizeK (32-1305, default 1305): +6000M Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First cylinder (32-761, default 32): Using default value 32 Last cylinder or +size or +sizeM or +sizeK (32-761, default 761): Using default value 761 Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) p Partition number (1-4): 3 First cylinder (762-1305, default 762): Using default value 762 Last cylinder or +size or +sizeM or +sizeK (762-1305, default 1305): Using default value 1305 Command (m for help): p Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000a6bf9 Device Boot Start End Blocks Id System /dev/sda1 * 1 31 248976 83 Linux /dev/sda2 32 761 5863725 5 Extended /dev/sda3 762 1305 4369680 83 Linux /dev/sda5 32 761 5863693+ 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 

取消出现的“身份validation”对话框(Live CD正在尝试自动挂载新分区)。

LVM分区的系统ID也应更改为“Linux LVM”:

 Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 8e Command (m for help): w 

如果不这样做,可能会导致逻辑分区的起始扇区不与以前的位置对齐,并且LVM将无法读取!

我强烈建议您先阅读全部WIKI页面

请参阅: https : //help.ubuntu.com/community/ResizeEncryptedPartitions

一旦有了可用空间,就可以使用它从图形安装程序安装ubuntu。

我建议您在完成resize之后和安装之前重新启动。