概括
我有一台带有单个硬盘的笔记本电脑,随 Windows 一起提供了 2 个主分区(PP)/dev/sda1
和/dev/sda2
。随后,我通过添加 PP= /dev/sda3
for/boot
和带有单个逻辑分区的扩展分区来进行双引导,/dev/sda5
用于 Linux 安装和数据的其余部分(在 LVM 逻辑卷内(LV)在 LUKS 容器内)。
我现在想“吃掉”Windows 安装并将其磁盘空间重新分配给 Linux 分区,该分区现在可能是主分区而不是逻辑分区(因为我现在有 2 个分区而不是 4 个分区)。目前,Linux 分区仍会完全分配给 LUKS 容器,而 LUKS 容器又会完全分配给 LVM LV。我想知道,
- 这项任务的“一般程序”是什么?这个过程是否已经记录在某处?如果是这样,请指向 doc,我将 RTFM。
- 我是否使用了正确的词汇来描述我想做的事情?
- 下面我是否遗漏了一些重要细节?如果是这样,请让我知道,我将进行编辑。
FWIW,我有
- 良好的备份
/home
- 备份驱动器上的可用空间足以为当前所在的其他“真实”顶级目录/文件夹创建备份
/
(即/bin
,/.config
,/etc
,/lib
,/lib64
,/opt
,/root
,/sbin
,/tmp
,/usr
,/var
)
细节
当前状态
以下是 PC 的当前lsblk
表格,稍作编辑:
MOUNT
NAME MAJ:MIN SIZE TYPE POINT NOTES
sda 8:0 465.8G disk
├─sda1 8:1 16.6G part [1]
├─sda2 8:2 97.7G part [2]
├─sda3 8:3 500M part /boot
├─sda4 8:4 1K part extended
└─sda5 8:5 351G part logical
└─LVM2_crypt 254:0 351G crypt LUKS
├─LVM2_crypt-swap 254:1 3.9G lvm [SWAP]
├─LVM2_crypt-root 254:2 20G lvm / [3]
└─LVM2_crypt-home 254:3 327.1G lvm /home [3]
[1]: sda1
是一个Windows Recovery Environment
带有 GRUB 的可启动 PP ≅
menuentry 'WRE (loader) (on /dev/sda1)' --class windows --class os ...
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
...
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
}
[2]: sda2
是一个带有 GRUB 的可启动 Windows PP ≅
menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os ...
insmod part_msdos
insmod ntfs
set root='hd0,msdos2'
...
parttool ${root} hidden-
chainloader +1
}
[3]目前,我经常在我的 filesystem= 上看到空间不足的警告/
:在从“通常的嫌疑人”释放空间(使用脚本)后,我通常有 ≅ 500 MB 的可用空间。这是一个问题,特别是因为我想安装(但不能)软件。我的 FS= 上的可用空间也小于 5% /home
:问题不大,但很快就需要修复。
期望的最终状态
我想回收 Windows 磁盘空间 (114 GB ≅ size(current( sda1
)) + size(current( sda2
))) 并将其重新分配给 FS= 的新的可调整大小的部分/
。因此我设想类似的东西
me@it: ~ $ lsblk_magic_8_ball
MOUNT CURRENT
NAME MAJ:MIN SIZE TYPE POINT SIZE
sda 8:0 465.8G disk same
├─sda1 8:1 500M part /boot same
└─sda2 8:2 465.3G part size(sda) - size(sda1)
└─LVM2_crypt 254:0 465.3G crypt LUKS all of sda2
├─LVM2_crypt-swap 254:1 3.9G lvm [SWAP] same
├─LVM2_crypt-etc 254:2 1.0G lvm /etc currently du=27M
├─LVM2_crypt-lib 254:2 1.0G lvm /lib currently du=400M
├─LVM2_crypt-opt 254:2 1.0G lvm /opt currently du=386M
├─LVM2_crypt-tmp 254:2 1.0G lvm /tmp currently du=640k
├─LVM2_crypt-usr 254:2 10G lvm /usr currently du=5.3G
├─LVM2_crypt-var 254:2 20G lvm /var currently du=11G
├─LVM2_crypt-root 254:2 20G lvm / [1]
└─LVM2_crypt-home 254:3 407.1G lvm /home [2]
[1]:我当前的 LV 大小 ( /
)=20 GB 且 du( /
) ≅ 500 MB。我将保留该大小,但会将当前 du( /etc
, /lib
, /opt
, /tmp
, /usr
, /var
) ≤ 17.2 GB 的子 FS 从 LV=/
移至它们自己的 LV 中。
[2]:我打算从回收的 Windows 磁盘空间 ≅ 114 GB 中创建大小(新 LV)≅ 24 GB。这样就剩下 80 GB,我将其添加到 LV= 中/home
。
恕我直言,我了解如何在扩大的 LUKS 容器内创建新的 LV。我不知道(并且正在询问)的是如何将 Windows PP 当前占用的空间转移到新的且扩大的 Linux PP 中以托管扩大的 LUKS 容器。感谢您的启发。