编辑

编辑

我的文件系统:

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 9.8G     0  9.8G   0% /dev
tmpfs                    9.8G   18M  9.8G   1% /dev/shm
tmpfs                    9.8G  1.8M  9.8G   1% /run
tmpfs                    9.8G     0  9.8G   0% /sys/fs/cgroup
/dev/mapper/fedora-root   49G   14G   33G  30% /
tmpfs                    9.8G  160K  9.8G   1% /tmp
/dev/nvme0n1p5           976M  195M  715M  22% /boot
/dev/mapper/fedora-home   37G   28G  6.3G  82% /home
/dev/nvme0n1p1           256M   47M  210M  19% /boot/efi
tmpfs                    2.0G   12M  2.0G   1% /run/user/1000

gnome-app“磁盘”显示我在/dev/nvme0n1.

如何将这 400GB 添加到我的 home 分区,以便 /dev/mappe/fedora-home 将变为 437 GB。

我使用磁盘加密 (LUKS) 和 Fedora 29

编辑

分开-l

输出sudo parted -l如下:

Model: NVMe Device (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size    File system  Name                          Flags
 1      1049kB  274MB  273MB   fat32        EFI System Partition          boot, hidden, esp
 2      274MB   290MB  16.8MB               Microsoft reserved partition  msftres
 5      406GB   407GB  1074MB  ext4
 6      407GB   511GB  104GB
 4      511GB   512GB  1049MB  ntfs         Basic data partition          hidden, diag

LSBL

$ lsblk
NAME                                        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
nvme0n1                                     259:0    0  477G  0 disk  
├─nvme0n1p1                                 259:1    0  260M  0 part  /boot/efi
├─nvme0n1p2                                 259:2    0   16M  0 part  
├─nvme0n1p4                                 259:4    0 1000M  0 part  
├─nvme0n1p5                                 259:5    0    1G  0 part  /boot
└─nvme0n1p6                                 259:6    0 96.7G  0 part  
  └─luks-29414c5a-13ed-4ddb-9403-8aa5d983fd4f
                                            253:0    0 96.7G  0 crypt 
    ├─fedora-root                           253:1    0   50G  0 lvm   /
    ├─fedora-swap                           253:2    0  9.8G  0 lvm   [SWAP]
    └─fedora-home                           253:3    0 36.9G  0 lvm   /home

编辑2

感谢@frostschutz 的回答,我有一些后续/理解问题。

我的理解

lsblk我可以看到整个设备及其分区从parted -l我可以看到每个使用分区的内容。

所以从 lsblk 我可以看到 nvme0n1 的总大小为 477 GB。该磁盘有 6 个分区。我可以看到分区 6 是具有三个挂载点的 luks 加密容器。

分区号对应于输出parted

所以:

  • nvme0n1p1 = 260M 是 EFI 启动(我可以从parted -l 中看到)
  • nvme0n1p2 = 16M是微软保留的(我猜是恢复分区)
  • nvme0n1p3 丢失。我们可以推断这里有 400 GB - 但不完全是。我们有 477G - 260M -16M - 1000M - 1G - 96.7G = 378G
  • nvme0n1p4 = 基本数据空间​​,Ntfs - 可能是旧窗口 - 但隐藏?不知道这是什么
  • nvme0n1p5 = 引导,我猜这是用于 linux grub 的?
  • nvme0n1p6 = fedora 安装,使用 luks lvm 容器加密。

lsblk还向我显示,从分区 2 结束位置 (290 MB) 到分区 3 开始位置 (406 GB) 有“空间”。

我的后续问题

我可以看到这一点parted并且lsblk不同意分区大小?Parted说第 6 部分是 104GB。lsblk说第 6 部分是 96.7 GB

gnome 程序disk说我有 406 GB 可用空间。计算总大小减去已使用的分区,如报告所述,lsblk我有大约。 378G 看parted我有 406G 减去 290M - 所以可能是 405

1:我应该相信哪个报告的尺寸?。或者更确切地说,为什么 lsblk 报告错误的大小?这种差异似乎比 G(基数为 10)和 GB(基数为 2?)的任何差异都要大 - 但真的是这样吗?

我了解如何创建分区 3。我猜您随机分配它 9 MB,这样我们就得到了一个整数。今天 boot 是 1 GB - 您分配 newboot ca。 900 MB - 根据我的输出,df这已经足够了。今天,root 是 96.7 GB,您分配给它(200G 减去 1200M)大约。 199G - 因为为什么没有足够的空间呢?

2:它是否正确?

我了解如何通过 dd 复制数据。

我知道您现在想要删除分区 5(旧启动 - 刚刚复制到 7)、分区 6(不存在的分区?)分区 7 和 8(newboot 和 newroot? - 但我们刚刚创建并复制了这些?)

3:那么我不明白为什么我们删除这些新分区?或者只是被删除的编号?

4:*我不明白为什么要再次创建newboot和newroot?在我看来,我们创建它,我们将数据复制到其中,我们删除然后我们创建它?如果它没有被删除(按照问题 3)那么为什么要再次创建它呢?

我的阅读方式:我理解调整大小命令随后会将分区扩展到 511 GB 位置。

但我想我现在没有任何数据?我哪里理解错了?

编辑3

当我走到这一步时,稍后我将需要研究pvresizelvextendresize2fs

答案1

因此,磁盘中间有大约 400GB 的未分区间隙(缺少分区号 3)。此间隙后面是 /boot 分区 (5) 和 LUKS 加密分区 (6),其中包含 Fedora 安装。因此您有分区 1、2、(缺少 3 个)、5、6、4。

在这种情况下,我将启动 Live CD (不要安装任何东西)并移动分区 5、6,然后增长分区 6。分区 1、2 和 4 保持不变。这可以大致(!)这样完成:

# parted /dev/nvme0n1 mkpart unused3 290MiB 299MiB  # should be 3
# parted /dev/nvme0n1 mkpart newboot 300MiB 1199MiB # should be 7
# parted /dev/nvme0n1 mkpart newroot 1200MiB 200GiB # should be 8

这将创建一个分区号 3(只是为了保留该编号),以及两个新分区 7 和 8 来替换 5 和 6。只能以这种方式完成,因为您的分区间隙足够大以包含引导分区和根分区。

将数据复制到:

# dd status=progress bs=1M if=/dev/nvme0n1p5 of=/dev/disk/by-partlabel/newboot
# dd status=progress bs=1M if=/dev/nvme0n1p6 of=/dev/disk/by-partlabel/newroot

仅当两个副本都成功制作后才能继续。如果到此为止出现任何问题,请在重新启动之前删除 newboot 和 newroot 分区,否则您将遇到 UUID 冲突。

恢复原始分区编号并增长到大小:

# parted /dev/nvme0n1 rm 5 rm 6 rm 7 rm 8
# parted /dev/nvme0n1 mkpart newboot 300MiB 1199MiB # previously 7 now 5
# parted /dev/nvme0n1 mkpart newroot 1200MiB 200GiB # previously 8 now 6
# parted /dev/nvme0n1 resizepart 6 511GB

重新启动后,剩下的就是pvresize, lvextend, resize2fs, ... 您认为合适的正常增长操作。

笔记parted /dev/nvme0n1 unit mib print free:用或类似的方法验证每一步。上面的命令都未经测试(因为我现在无法轻松复制您的情况)。理论上应该是这样,但您可能必须在实践中进行调整。首先备份您的数据,这样如果出现问题,您可以重新安装。

另一种方法是重新创建丢失的分区 3,对其进行 luksFormat,然后添加到您的 LVM。这样就不需要移动任何数据,但是每次启动时都必须打开两个 LUKS 容器,而不是只打开一个。

您还可以尝试移动分区,gparted而不是在终端中手动执行此操作。我自己从未使用过该程序,所以我不知道它处理 LUKS 容器等的效果如何。

相关内容