我最近在我的计算机上安装了 Linux,目的是进行双启动,但失败了并擦除了我的 Windows 启动磁盘,这不是什么大问题。然而,我现在这个分区中有来自 Windows 启动的不可用空间。有什么方法可以通过 GParted 或 CLI 将此分区内的空间重新分配到当前分区吗?
nvme1n1
是我的现有分区,Linux 正在其中工作,并且nvme0n1
是当前分配了大部分存储空间的不可访问分区。
编辑:
我已经添加cat /proc/mdstat
并dmsetup ls --tree
输出
cat /proc/mdstat
dmsetup ls --tree
输出为sudo dmsetup ls --tree
输出为sudo pvs
答案1
nvme0n1
不是分区,而是整个磁盘:“NVMe 控制器 #0,命名空间 #1”。除非您拥有一些重要的企业硬件,否则您的 NVMe 磁盘上只有一个命名空间。
ataraid
作为文件系统类型表示您曾经拥有某种类型的 BIOS-RAID,但您的 Linux 安装程序覆盖了该类型并在第二个 NVMe 磁盘上创建了 Linux 安装。
您似乎已经nvme0n1
检测到在/dev/md127
Linux 软件 RAID 子系统下,具有imsm
(Intel 风格的 BIOS-RAID)超级块。要消除它,请尝试:
sudo mdadm /dev/md127 --fail /dev/nvme0n1
sudo mdadm /dev/md127 --remove /dev/nvme0n1
sudo dd if=/dev/zero of=/dev/nvme0n1 count=1024 #Be careful with this command!
我还要指出的是,您的交换区域当前似乎位于未加密的分区上,如果计算机被盗,这可能会导致数据泄漏。如果您认真对待加密,那么交换也应该加密。
清除 BIOS-RAID 设置的残余部分后,您可能需要在nvme0n1
其上创建一个包含整个磁盘的分区。在 GParted 中,这意味着选择nvme0n1
然后选择Device
-> Create Partition Table...
。然后您应该能够nvme0n1
像往常一样创建一个分区,覆盖整个磁盘。新分区将成为/dev/nvme0n1p1
.
下一步是在新分区上创建加密容器。由于您可能不想输入两次磁盘加密密码,因此您可能希望/etc/crypttab
在加密的根文件系统上使用它来保存自动解锁第二个磁盘的密钥。为此,您首先要创建一个包含 256 字节随机数据的密钥文件:
sudo mkdir -p /etc/cryptsetup-keys.d/ # makes sure the directory exists
sudo chmod 700 /etc/cryptsetup-keys.d # ...and is only root-accessible
sudo dd if=/dev/random of=/etc/cryptsetup-keys.d/cryptdata2.key bs=256 count=1
nvme0n1p1
然后,您可以使用刚刚创建的密钥文件来初始化 上的加密容器:
sudo cryptsetup luksFormat /dev/nvme0n1p1 /etc/cryptsetup-keys.d/cryptdata2.key
添加一个“人类可写”密码也是一个好主意,以防密钥文件丢失或损坏:
sudo cryptsetup luksAddKey /dev/nvme0n1p1 # enter a passphrase for the cryptdata2 container when prompted
然后您可以将此行添加到您的/etc/crypttab
配置文件中:
cryptdata2 /dev/nvme0n1p1 /etc/cryptsetup-keys.d/cryptdata2.key
(此时,最好重建 initramfs 文件,然后重新启动并验证该文件/dev/mapper/cryptdata2
自动可用。但是,您似乎没有指定 Linux 发行版的名称,因此我无法为您提供重建 initramfs 文件的确切说明。 initramfs - 所需的命令在某种程度上是特定于发行版的。)
一旦您确认系统将正常启动并自动/dev/mapper/cryptdata2
可用,接下来的步骤就是初始化加密卷以便与 LVM 一起使用:
sudo pvcreate /dev/mapper/cryptdata2
sudo vgextend data /dev/mapper/cryptdata2
此时, 的磁盘空间nvme0n1p1
应该可供 LVM 使用,如 所示sudo vgs
。然后,您可以使用它创建新的逻辑卷(使用sudo lvcreate ...
)或扩展现有逻辑卷 - 甚至在线,并包括您的根文件系统 - 使用sudo lvextend -r ...
。
但在将根文件系统扩展到第二个加密磁盘之前,我建议再启动一次,并验证系统启动时是否出现错误,并将第二个加密卷添加到默认 LVM 卷组 - 以防万一您的发行版出现一些问题处理多设备加密卷组上的根文件系统。