分区表

分区表

我在系统安装过程中手动编写了一个分区表,其中包含加密部分、/boot分区和未分区的其余部分。尽管我首先创建了分区(每个分区都手动创建)并将它们放入一个逻辑卷中。逻辑卷important被卷组填满a(如果不能这样,请更正;如果知道必须这样,请删除此注释)。之后,我用加密了逻辑卷LUKS并安装了系统。

分区表

$ LC_ALL=C sudo lsblk
[sudo] password for sj126:
NAME                        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                           8:0    0 931.5G  0 disk
|-sda1                        8:1    0   953M  0 part  /boot
|-sda2                        8:2    0     1K  0 part
|-sda3                        8:3    0    16G  0 part  [SWAP]
|-sda4                        8:4    0   100G  0 part
|-sda5                        8:5    0   7.5G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
|-sda6                        8:6    0    14G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
|-sda7                        8:7    0 372.5G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
|-sda8                        8:8    0     7G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
|-sda9                        8:9    0     7G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
|-sda10                       8:10   0     7G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
|-sda11                       8:11   0   2.3G  0 part
| `-experiment-test         254:0    0 418.3G  0 lvm
|   `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
`-sda12                       8:12   0   1.1G  0 part
  `-experiment-test         254:0    0 418.3G  0 lvm
    `-experiment-test_crypt 254:1    0 418.3G  0 crypt /
$ LC_ALL=C sudo partitionmanager
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Loaded backend plugin:  "pmlibpartedbackendplugin"
"Using backend plugin: pmlibpartedbackendplugin (1)"
"Scanning devices..."
"Device found: [...]"
blkid: unknown file system type  ""  on  "/dev/sda2"
"Partition ‘/dev/sda2’ is not properly aligned (first sector: 1955838, modulo: 2046)."
"Scan finished."

关键是,当浏览我的目录时,只有/booton/dev/sda2显示为(单独的)分区,剩余部分似乎/位于同一分区上。 dev/sda{5,..12}应该成为包含 的分区/home,例如,留在同一逻辑卷中并且也应该安装在那里。

编辑:以下是我的分区表(已更新)。分区 3 和 4 是解决方法的开始,现在可以忽略。唯一遗漏的是磁盘标签和磁盘标识符。

$ LC_ALL=C sudo fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: [...]
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: [...]

Device     Boot     Start        End   Sectors   Size Id Type
/dev/sda1  *         2048    1953791   1951744   953M 83 Linux
/dev/sda2         1955838  879298559 877342722 418.4G  5 Extended
/dev/sda3       879300608  912855039  33554432    16G 82 Linux swap / Solaris
/dev/sda4  *    912857088 1122572287 209715200   100G 83 Linux
/dev/sda5         1955840   17577983  15622144   7.5G 8e Linux LVM
/dev/sda6        17580032   46874623  29294592    14G 8e Linux LVM
/dev/sda7        46876672  828125183 781248512 372.5G 8e Linux LVM
/dev/sda8       828127232  842774527  14647296     7G 8e Linux LVM
/dev/sda9       842776576  857423871  14647296     7G 8e Linux LVM
/dev/sda10      857425920  872073215  14647296     7G 8e Linux LVM
/dev/sda11      872075264  876955647   4880384   2.3G 8e Linux LVM
/dev/sda12      876957696  879298559   2340864   1.1G 8e Linux LVM

Partition 2 does not start on physical sector boundary.
Partition table entries are not in disk order.
$ LC_ALL=C sudo lvs
  LV   VG         Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  test experiment -wi-ao---- <418.32g
$ LC_ALL=C sudo pvs
  PV         VG         Fmt  Attr PSize    PFree
  /dev/sda10 experiment lvm2 a--     6.98g    0 
  /dev/sda11 experiment lvm2 a--     2.32g    0 
  /dev/sda12 experiment lvm2 a--     1.11g    0 
  /dev/sda5  experiment lvm2 a--    <7.45g    0 
  /dev/sda6  experiment lvm2 a--    13.96g    0 
  /dev/sda7  experiment lvm2 a--  <372.53g    0 
  /dev/sda8  experiment lvm2 a--     6.98g    0 
  /dev/sda9  experiment lvm2 a--     6.98g    0 

答案1

您的磁盘使用 MBR 分区表进行分区。磁盘分区如下:

  • sda1:主分区,使用文件系统格式化,安装在/boot.

  • sda2:扩展分区,包含以下逻辑分区:

    • sda5to sda12:逻辑分区,格式化为LVM物理磁盘。
  • sda3:主分区。不能说是否格式化。

  • sda4:主分区。不能说是否格式化。

LVM 物理磁盘sda5sda12LVM 卷组的成员experiment

LVM 卷组experiment包含一个名为 的 LVM 逻辑卷test。 LVM 逻辑卷experiment-test被格式化为 LUKS 容器。 LUKS容器的有效负载被命名为experiment-test_crypt;它使用文件系统进行格式化并安装在/.

注意:

  • sda2是一个扩展分区。它只是逻辑分区的容器,无法使用文件系统进行格式化和挂载。

  • 逻辑分区sda5全部sda12格式化为 LVM 物理磁盘并成为 LVM 卷组的成员experiment。 LVM卷组实验中的所有空间都分配给逻辑卷test,格式为LUKS。

答案2

LVM 的目的是将物理存储单元(整个磁盘或分区)的大小与逻辑卷(通常包含文件系统)的大小分离。

因此,将单个磁盘拆分为多个分区,然后将所有这些分区作为 LVM 物理卷 (PV) 添加到同一卷组 (VG) 中并不是很有用,除非作为打字练习。您最终基本上会回到开始的地方 - 对于一大块无差别的存储,您需要将其分割成有用的块。

每个 PV 一次只能是一个 VG 的成员。由于您的所有 PV 都是experimentVG 的成员,因此您在问题中提到的 VG显然不再存在,这意味着本应位于其中的a逻辑卷 (LV)现在已消失并被覆盖。important对不起。

坦率地说,您对 LVM 设置的描述对我来说似乎是……倒退或者可能是从内到外的。希望下面的解释可以帮助您理清概念。

为了在新磁盘上最大限度地发挥 LVM 的优势,您通常需要执行以下两项操作之一:

  • 如果是系统磁盘,则创建满足系统固件要求所需的任何内容(例如 UEFI 系统上的 EFI 系统分区,或/boot非常旧的 BIOS 系统,其固件可能无法处理磁盘的完整大小)和单个大分区覆盖磁盘的其余部分,用作 LVM PV。即使固件没有设置任何特定限制(例如,使用具有 LVM 和加密支持的最新版本 GRUB 进行 BIOS 式引导),您可能需要创建一个非 LVM/boot分区,以确保引导加载程序组件模块以及内核和 initramfs 文件对于启动至关重要的内容肯定包含在特定的“启动磁盘”上,而不是大型多磁盘 LVM 卷组上的“任何地方”,以便更轻松地进行故障排除。

  • 如果是数据磁盘,您可以选择根本不使用分区,而只是将整个磁盘用作 LVM PV。如果磁盘实际上是 SAN LUN,这可能是一个优势:如果需要扩展 LUN,则可以即时扩展整个磁盘 LVM PV。 SAN管理员增加LUN大小后,只需要几个命令就可以立即使用扩展的大小,而无需先摆弄分区表。另一方面,对于其他操作系统,全磁盘 LVM PV 无法识别为包含有效数据的磁盘:如果使用其他操作系统访问,这样的磁盘可能很容易被意外重新格式化。为了最大限度地降低这种风险,您可以创建一个包含整个磁盘的分区,并将其用作 LVM PV。

拥有多个 PV 本身并不是什么大问题,但您应该至少有一些特定原因让每个物理磁盘拥有多个 PV。回收以前的双引导操作系统安装所使用的空间就是这样一个有效的原因。另一方面,拥有多个 VG(一个就足够了)可能会很痛苦。

一旦您拥有一个或多个 PV,您就可以创建一个或多个 VG。如果您只有一张磁盘,通常没有理由创建多个 VG。如果您有多个物理磁盘,则需要确定是否需要出于任何原因将这些磁盘彼此分开,或者您是否可以假设它们在存储数据的整个生命周期内将保留在一起。如果磁盘可以放在一起,您可以将它们的所有 PV 添加到单个 VG 中。这将为您提供一大存储池,您可以将其分割成 LV任何你想要的方式- 只要 VG 有足够的可用总空间,您就可以创建一个 LV超越任何单一PV的限制

当使用 LVM 时,LV 主要代替传统分区作为文件系统的容器。如果您需要扩展 LV,您就可以做到这一点 - 即使是在线 - 只要您的 VG 的至少一个 PV 中仍然有未分配的空间。如果您用完了未分配的空间,您可以添加(是的,甚至是热添加)一个新的 PV 到 VG 中,然后然后将您的 LV 扩展到它上面。

在 VG 的范围内,pvmove如有必要,您可以使用该命令来移动 LV - 即使 VG 处于活动状态并且 LV 上的文件系统已挂载并正在使用时也是如此。您可以将数据迁移到更大的新物理磁盘上,方法是将新磁盘作为 PV 添加到旧 VG 中,然后使用将pvmove数据从旧磁盘移动到新磁盘,然后删除旧磁盘一旦磁盘空了,就从 VG 中删除磁盘。所有这一切都可以在不卸载任何东西的情况下完成。

如果您预计需要将某个特定磁盘移动到另一个包含数据的系统,那么您可以为该磁盘创建一个单独的卷组,或者如果另一个系统不是另一个 Linux,则可能根本不在该磁盘上使用 LVM系统。这可能是在使用 LVM 的普通 Linux 设置中创建多个 VG 的唯一真正原因。

有两种方法可以与 LVM 一起设置加密:

  • 您可以在将物理磁盘/分区设置为 LVM PV 之前对其进行加密,这样单个加密密码即可一次性解锁所有 LV(分层:磁盘 -> 分区 -> 加密设备 -> PV -> LV)
  • 或者您可以先设置 PV、VG 和 LV,然后分别在一个或多个 LV 上设置加密,允许不同的 LV 在需要时具有不同的加密密码。 (分层:磁盘->分区->PV->LV->加密设备)

相关内容