我正在对一个新磁盘进行分区,该磁盘上尚未存储任何内容,因此我还需要一个全新的分区表等。为了尝试执行此操作,我首先制作了一个谷氨酰胺磷酸酶print free
分区表,然后分配在的输出下列出的所有空间parted /dev/sda
。
我把这变成了ext4分区,并留出尽可能多的空间。parted
再次退出后,我尝试使用 检查分区的 UUID blkid /dev/sda*
,结果如下:
/dev/sda: PTTYPE="gpt"
/dev/sda1: PARTLABEL="ext4" PARTUUID="d8415694-74bb-457b-b028-d488ca6d64f2"
如您所见,没有列出整个驱动器的 UUID,只列出了 PARTUUID。据我所知,当/etc/fstab
通过 uuid 安装驱动器时,我需要有一个设备 UUID 才能安装。
的输出parted -l
是:
Disk /dev/sda: 2879GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17,4kB 2879GB 2879GB ext4
输出为fdisk -l
:
Disk /dev/sda: 2879.0 GB, 2878970265600 bytes, 5622988800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disk label type: gpt
Disk identifier: C6A4181C-CEFD-4457-ACEF-577084496DD0
# Start End Size Type Name
1 34 5622988766 2,6T Microsoft basic ext4
Partition 1 does not start on physical sector boundary.
我尝试将以下两行中的任意一行添加到/etc/fstab
,但它们都返回错误“ mount: can't find UUID=(...)
”:
UUID=d8415694-74bb-457b-b028-d488ca6d64f2 /local ext4 defaults 1 2
UUID=C6A4181C-CEFD-4457-ACEF-577084496DD0 /local ext4 defaults 1 2
我该怎么做才能正确安装这个新磁盘/local
?
答案1
- 删除分区。
- 重新创建它,使其从扇区 1024 开始(这将解决问题
Partition 1 does not start on physical sector boundary
)。 - 给出分区十六进制代码
8300
或(等效)0FC63DAF-8483-4772-8E79-3D69D8477DE4
GUID,因此它是“Linux 文件系统”(目前您有“Microsoft basic”,这是错误的)。gdisk
这可以通过 来完成t
。 mkfs.ext4
在分区上运行并创建文件系统。这很关键。- 调用
blkid
并找出正确的UUID
(不是PARTUUID
)。 fstab
在您的()中使用此 UUIDUUID=…
,就像您已经尝试过这些其他 ID 一样。
答案2
您必须创建一个文件系统,mkfs.ext4 /dev/sda1
它将UUID
为您创建一个唯一的文件系统。仅分区是不够的。是的,分区类型是 ext4,但没有文件系统……
如果这个硬盘是你的电脑中唯一的硬盘,你可能需要创建一个ESP(EFI 系统分区)作为第一个启动分区。gdisk
在这种情况下,使用 GPT 分区方案对硬盘进行分区会更容易。
而且如果您无论如何都想全新安装 Linux,使用安装 DVD 进行分区可能会更容易。
答案3
当我使用 SCSI 路径对磁盘进行分区时遇到了同样的问题:
disk=lun3
printf "o\nn\np\n1\n\n\nw\n" |fdisk /dev/disk/azure/scsi1/${disk}
我无法检索 UUID:
blkid /dev/disk/azure/scsi1/${disk}-part1
当我使用路径再次进行分区(删除旧分区后)时/dev/sdf
,我能够看到 UUID。