从启动后实时 USB (16.04):
ubuntu@ubuntu:~$ sudo fdisk -l
[...]
Disk /dev/nvme0n1: 953.9 GiB, 1024209543168 bytes, 2000409264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C5CE78D6-06C1-4528-BF0F-098BAEE04CC0
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 2050047 999424 488M Linux filesystem
/dev/nvme0n1p3 2050048 2000408575 1998358528 952.9G Linux filesystem
[...]
# Later, de-crypting nvme0n1p3 and looking inside it:
ubuntu@ubuntu:~$ sudo cryptsetup luksOpen /dev/nvme0n1p3 n1p3
Enter passphrase for /dev/nvme0n1p3:
ubuntu@ubuntu:~$ sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "ubuntu-vg" using metadata type lvm2
ubuntu@ubuntu:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg -wi-a----- 867.47g
swap_1 ubuntu-vg -wi-a----- 63.85g
ubuntu@ubuntu:~$ sudo vgchange -ay ubuntu-vg
2 logical volume(s) in volume group "ubuntu-vg" now active
ubuntu@ubuntu:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg -wi-a----- 867.47g
swap_1 ubuntu-vg -wi-a----- 63.85g
ubuntu@ubuntu:~$ mkdir /tmp/n1p3
ubuntu@ubuntu:~$ sudo mount /dev/ubuntu-vg/root /tmp/n1p3
ubuntu@ubuntu:~$ ls /tmp/n1p3
bin cdrom data etc initrd.img lhome lib32 libx32 measurements mnt proc run snap sys usr vmlinuz
boot core dev home initrd.img.old lib lib64 lost+found media opt root sbin srv tmp var vmlinuz.old
ubuntu@ubuntu:~$
问题:
- /dev/nvme0n1 的前 2048 个扇区是什么?
- /dev/nvme0n1p1 里有什么?
- /dev/nvme0n1p2 中有什么?
- swap_1 里有什么?
答案1
在磁盘起始处的初始 2048 个扇区中,GPT 分区驱动器的前 34 个扇区包含分区表,其余 (2048 - 34 =) 2014 个扇区未使用。分区需要从某个扇区开始才能获得最佳磁盘性能,一种常见的做法是将分区对齐到 1 MiB(512 B(扇区大小)x 2048(扇区数)= 1 MiB),这就是您在磁盘起始处看到这个间隙的原因。
/dev/nvme0n1p1
是 ESP(EFI 系统分区),它是存储引导加载程序的地方。此分区是必需的,它是 UEFI 规范所要求的,如果没有此分区,您将无法启动机器。此分区将安装在/boot/efi
您的系统中。/dev/nvme0n1p2
是您的boot
分区,将安装/boot
在您的系统中。此分区未加密。您需要这个额外的分区,因为您使用 LVM 和加密。引导加载程序无法从加密的分区读取,因此需要这个额外的分区。此分区包含内核和引导加载程序配置。swap_1
是交换空间。交换空间充当虚拟内存。系统将使用此空间将 RAM 中的内容移动到交换空间,以便在必要时释放一些 RAM(如果应用程序使用大量 RAM,则可能会发生这种情况,如果应用程序需要使用的 RAM 超过已安装的 RAM,则肯定会发生这种情况,如果在这种情况下没有交换空间,应用程序就会崩溃)。