Fdisk 与 /proc/partitions 或挂载点(嵌入)不匹配

Fdisk 与 /proc/partitions 或挂载点(嵌入)不匹配

我正在使用现有的嵌入式 Linux 设备,但在使用 fdisk 编辑分区时遇到问题。我的目标是创建一个分区用于测试目的/dev/sda。我正在使用与 BusyBox v1.23.2 捆绑在一起的 fdisk。请参阅下面的我的难题:

# cat /proc/partitions
major minor  #blocks  name
8        0   56582144 sda
8        1          8 sda1
8        2      32768 sda2
8        3     262144 sda3
8        4       1024 sda4
8        5        512 sda5
8        6        512 sda6
8        7   56285132 sda7

请注意,列出了 7 个分区sda

# fdisk -l /dev/sda
Note: sector size is 4096 (not 512)

Disk /dev/sda: 57.9 GB, 57940115456 bytes
256 heads, 63 sectors/track, 877 cylinders
Units = cylinders of 16128 * 4096 = 66060288 bytes

  Device Boot        Start        End       Blocks    Id    System
/dev/sda1                1     266306   4294967292    ee    EFI GPT
Partition 1 has different physical/logical beginnings (non-Linux?):
        phys=(0,0,1) logical=(0,0,2)
Partition 1 has different physical/logical endings:
        phys=(1023, 255, 63) logical=(266305, 4, 4)

没有显示有关剩余 6 个分区的信息sda2 - sda7

让我们看看现在实际安装了什么

# mount | grep '^/dev'
/dev/root on / type ext4 (rw,relatime,data=ordered)
/dev/block/bootdevice/by-name/userdata on /data type ext4 (rw,relatime,discard,noauto_da_alloc,data=ordered)
/dev/block/bootdevice/by-name/modem on /firmware type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/block/bootdevice/by-name/dsp on /dsp type ext4 (rw,relatime,discard,noauto_da_alloc,data=ordered)
/dev/block/bootdevice/by-name/bluetooth on /bt_firmware type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

特别注意/dev/block/bootdevice/by-name/userdata安装在/data这里。我们来看看是什么分区用户数据指:

# ls -alh /dev/block/bootdevice/by-name | grep userdata
lrwxrwxrwx    1 root     root           9 Jan 12 20:34 userdata -> /dev/sda7

我们可以在这里看到/dev/sda7正在使用它,因为它安装在/data。我可以做些什么,以便 fdisk 正确识别所有分区并允许我编辑它们吗?

答案1

你有一个GUID分区表/dev/sda、 和上的 (GPT) fdisk,尤其是早期版本或小型嵌入式版本不适用于 GPT。您看到的是一种“兼容性”输出,它不会向您显示真实的结构,并且您将无法使用fdisk.

选项:

(1)取出硬盘,连接到其他计算机上,使用gparted等操作GPT分区表。

(2) 查看嵌入式设备上的二进制文件(非 busybox) ,看看是否有可以修改 GPT 的东西,例如gdisk// cgdisksgdisk

(3) 交叉编译gdisk//或类似的程序,甚至可能是,因此它可以在您的嵌入式设备上运行cgdisksgdiskgparted

(4)在硬盘上放入老式的MBR分区表而不是GPT,并尽量保留你想保留的分区(如果你想创建新分区,至少要删除一个旧分区,反正)。如果您不小心,这可能会破坏数据,因此请先进行备份。

相关内容