首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带477的不可访问分区

问带477的不可访问分区
EN

Unix & Linux用户
提问于 2023-01-09 04:11:16
回答 1查看 849关注 0票数 2

我最近在我的电脑上安装了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输出

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2023-01-09 07:25:38

nvme0n1不是一个分区,而是一个完整的磁盘:"NVMe控制器#0,命名空间#1“。除非您有一些严肃的企业硬件,否则NVMe磁盘上只有一个名称空间。

Linux作为文件系统类型的ataraid表示您曾经有某种类型的BIOS,但是您的Linux忽略了这一点,并在第二个NVMe磁盘上创建了一个NVMe安装。

您似乎已经在Linux软件RAID子系统下检测到nvme0n1为/dev/md127,并带有imsm (Intel风格的BIOS)超级块。要消除这种情况,请尝试:

代码语言:javascript
复制
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设置的残留物之后,您可能希望在nvme0n1上创建一个包含整个磁盘的分区。在GParted中,这意味着选择nvme0n1,然后选择Device -> Create Partition Table...。然后,您应该能够像往常一样在nvme0n1上创建一个分区,覆盖整个磁盘。新的分区将变成/dev/nvme0n1p1。

下一步是在新分区上创建一个加密的容器。由于您可能不想两次键入磁盘加密密码,所以您可能希望在加密的根文件系统上使用/etc/crypttab来保存自动解锁第二个磁盘的密钥。要做到这一点,首先要创建一个包含256字节随机数据的密钥文件:

代码语言:javascript
复制
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上初始化加密的容器:

代码语言:javascript
复制
sudo cryptsetup luksFormat /dev/nvme0n1p1 /etc/cryptsetup-keys.d/cryptdata2.key

添加一个“人工可写”密码也是个好主意,以防密钥文件丢失或损坏:

代码语言:javascript
复制
sudo cryptsetup luksAddKey /dev/nvme0n1p1  # enter a passphrase for the cryptdata2 container when prompted

然后将这一行添加到/etc/crypttab配置文件中:

代码语言:javascript
复制
cryptdata2 /dev/nvme0n1p1 /etc/cryptsetup-keys.d/cryptdata2.key

(此时,最好重新构建initramfs文件,然后重新启动并验证/dev/mapper/cryptdata2是否自动可用。但是,您似乎没有指定Linux发行版的名称,因此我无法给您确切的指示来重新构建initramfs --所需的命令在某种程度上是特定于发行版的。)

一旦您确认系统将在没有错误的情况下启动并使/dev/mapper/cryptdata2自动可用,接下来的步骤将是初始化加密卷,以便与LVM一起使用:

代码语言:javascript
复制
sudo pvcreate /dev/mapper/cryptdata2
sudo vgextend data /dev/mapper/cryptdata2

此时,nvme0n1p1的磁盘空间应该可供LVM使用,如sudo vgs所示。然后,您可以使用它创建新的逻辑卷(用sudo lvcreate ...),或者用sudo lvextend -r ...扩展现有的逻辑卷--即使是在线的,还包括根文件系统。

但是,在将根文件系统扩展到第二个加密磁盘之前,我建议再启动一次并验证系统是否启动时没有错误,将第二个加密卷添加到默认的LVM卷组中--以防您的发行版在处理多设备加密卷组上的根文件系统时遇到一些问题。

票数 12
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/731056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档