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

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

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

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

我如何在当前安装旁边腾出空间来安装其他设备?

答案1

没有图形工具可以调整加密分区的大小。您可以通过命令行手动进行调整。

调整加密分区的大小必须从实时 CD 进行,并且实时 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

获取实时 CD 来识别(激活)您的 LVM。

sudo vgscan --mknodes
sudo vgchange -ay

您现在可以管理加密分区、挂载、复制它们,或执行维护(fsck、备份、调整大小)。

使用 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 -x y /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 -x n /dev/mapper/crypt1

调整墓穴大小。

使用 cryptsetup 显示你的墓穴的大小。

sudo cryptsetup status crypt1

这显示了你的墓穴的扇区大小。记下偏移量

offset: 2056 sectors

使用 cryptsetup 调整大小。

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 (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., 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.

取消出现的“身份验证”对话框(实时 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 将无法读取!

我强烈建议你先阅读完整的维基页面

看:https://help.ubuntu.com/community/ResizeEncryptedPartitions

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

我建议您在完成调整大小之后和安装之前重新启动。

相关内容