令人难以置信:新创建的分区会自动格式化为vfat或ext4,并标记为“ uefi-boot”或“ cloudimg-rootfs”

osexp2003

在linux服务器上,我使用PXE引导加载ubuntu仿生文件,然后在本地磁盘上创建分区,无论我使用哪种工具(sgdisk,parted)创建分区,都会发生令人难以置信的事情,新创建的分区将自动

  • 如果它很小,则格式化为vfat
  • 标记为“ uefi-boot”(如果较小)或“ cloudimg-rootfs”
root@:server1~# sgdisk /dev/sda --zap-all && partprobe /dev/sda && lsblk /dev/sda
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0  1.8T  0 disk

root@server1:~# parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB
Information: You may need to update /etc/fstab.

root@server1:~# partprobe /dev/sda && udevadm settle && lsblk /dev/sda && sh -c 'blkid /dev/sda*'
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  1.8T  0 disk
└─sda1   8:1    0    7M  0 part
/dev/sda: PTUUID="f6e23816-0f58-4fa1-88a7-9663274d21b4" PTTYPE="gpt"
/dev/sda1: LABEL="uefi-boot" UUID="CF08-DFE8" TYPE="vfat" PARTLABEL="P1" PARTUUID="e5a560cd-4f40-4771-a219-771f3ed061a1"

uefi-boot在最后一行看到了吗?

如果我使用sgdisk,

root@server1:~# sgdisk /dev/sda --zap-all && partprobe /dev/sda && lsblk /dev/sda
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0  1.8T  0 disk

root@server1:~# sgdisk /dev/sda --new=3:4080:10000
Creating new GPT entries.
Information: Moved requested sector from 4080 to 2048 in
order to align on 2048-sector boundaries.
The operation has completed successfully.

root@server1:~# partprobe /dev/sda && udevadm settle && lsblk /dev/sda && sh -c 'blkid /dev/sda*'
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  1.8T  0 disk
└─sda3   8:3    0  3.9M  0 part
/dev/sda: PTUUID="4e2442b2-632a-43d5-9bf4-01d2fd21ce00" PTTYPE="gpt"
/dev/sda3: LABEL="uefi-boot" UUID="CF08-DFE8" TYPE="vfat" PARTUUID="7f564a33-855e-468f-a69e-1467974bb8df"

分区的开始位置和结束位置很重要,如果我指定了很大的大小,那么它将成为'cloudimg-rootfs'标签,哇!

root@server1:~# sgdisk /dev/sda --zap-all && partprobe /dev/sda && lsblk /dev/sda
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0  1.8T  0 disk

root@server1:~# sgdisk /dev/sda --new=3:1052672:3749640191
Creating new GPT entries.
The operation has completed successfully.

root@server1:~# partprobe /dev/sda && udevadm settle && lsblk /dev/sda && sh -c 'blkid /dev/sda*'
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  1.8T  0 disk
└─sda3   8:3    0  1.8T  0 part
/dev/sda: PTUUID="dd1266c5-e82b-4027-a423-94d7acd5b0d5" PTTYPE="gpt"
/dev/sda3: LABEL="cloudimg-rootfs" UUID="b000940e-c4fa-46d5-83bf-6cbef593300e" TYPE="ext4" PARTUUID="3b5806e1-3789-4caa-807f-8b9c7257009b"

我已经确认在普通的linux系统中,这个问题不存在。

也许是因为某些udev规则仍在检查中。

有人遇到这个问题吗?

编辑:对于任何想要尝试的人,运行

sgdisk /dev/sda --zap-all && partprobe /dev/sda && lsblk /dev/sda
sgdisk /dev/sda --new=3:4080:10000
partprobe /dev/sda && udevadm settle && lsblk /dev/sda && sh -c 'blkid /dev/sda*'

EDIT2:最初,我发现grub_bios分区已被自动格式化为vfat,从而引起问题。所以我做了上面的测试。

root@server1:~# blkid
/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="uefi-boot" UUID="4DC8-5F56" TYPE="vfat" PARTLABEL="bios_grub" PARTUUID="5d073c88-54aa-4b75-9eb8-baf62cde6cbd"
/dev/sda2: LABEL="uefi-boot" UUID="A224-71F4" TYPE="vfat" PARTLABEL="efi" PARTUUID="9a315cf9-413f-406b-8830-373630d7ebba"
/dev/sda3: LABEL="cloudimg-rootfs" UUID="0a5121c4-256d-4a87-96e4-8b7ec5b8a2d5" TYPE="ext4" PARTLABEL="root" PARTUUID="6786acc3-20b9-4f07-881a-5ddb1dd38f7a"
阿蒂

这似乎并不令人惊讶...

我希望您已经在磁盘上安装了这两个文件系统,实际上您是否正在看到它们。

别忘了parted/ sgdisk/之类的工具fdisk只会编辑分区表,而不会触及其余磁盘...当您“删除”分区(或分区表)时,您实际上只是删除分区位置和大小,而不删除文件系统。

您从未打电话给这个mkfs.*家庭中的一个,因此我不希望在这种情况下为您创建文件系统。


例如,磁盘状态如下:

初始磁盘布局,分区表和两个分区/文件系统

您运行sgdisk /dev/sda --zap-all,而您真正要做的就是清除分区表:

-Z,-zap-all

中断(销毁)GPT和MBR数据结构,然后退出。此选项的工作原理与-z相似,但是由于它擦除了MBR和GPT,因此,如果您希望在使用此选项后对磁盘进行重新分区,则它更适合;如果您已经对磁盘进行了重新分区,则完全不合适。

分区表不见了,但是数据仍然在磁盘上。

没有分区表,但是仍然存在两个文件系统

当您随后再次创建分区时,如果它恰好与现有数据对齐,那么您将能够像以前一样访问文件系统:

parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB

新分区表,其中一个分区使用现有文件系统登录

注意:新分区可能小于文件系统,在这种情况下,可以进行指纹识别,但是您可能无法挂载文件系统,或者在访问内容时可能遇到错误。大小相同或更大的分区将始终能够访问文件系统。


在第二个例子中,请注意,正如你希望你的操作没有完成-具体而言,4080您要求的起始扇区被改为2048,以保持对齐...即:该分区实际上是在同一个地方的您举的第一个例子。

root@server1:~# sgdisk /dev/sda --new=3:4080:10000 --typecode=3:ef02
Creating new GPT entries.
Information: Moved requested sector from 4080 to 2048 in
order to align on 2048-sector boundaries.
The operation has completed successfully.

尝试擦除磁盘的前100MiB,然后重试步骤:

dd if=/dev/zero of=/dev/sda bs=1M count=100

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章