Fdisk не соответствует / proc / partitions или точкам монтирования (встроенным)

Я работаю на существующем встроенном устройстве Linux, и у меня проблемы с редактированием разделов с помощью fdisk. Моя цель - создать раздел для тестирования на / dev / sda . Я использую fdisk в комплекте с BusyBox v1.23.2. См. Мою загадку ниже:

# 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

Обратите внимание, что для 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)

указано 7 разделов. Информация об остальных 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 . Давайте проверим, к какому разделу userdata относится:

# 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 правильно распознал все разделы и позволил мне их редактировать?

0
09.06.2017, 01:00
1 ответ

У вас есть таблица разделов GUID (GPT) на /dev/sda и fdisk, особенно ранние версии или небольшие встроенные версии не работают. с GPT. То, что вы видите, является своего рода выводом «совместимости», который не показывает вам реальную структуру, и вы не сможете изменить данные раздела с помощью fdisk.

Варианты:

(1) Извлеките жесткий диск, подключите его к другому компьютеру, используйте gparted и т. д. для управления таблицей разделов GPT.

(2) Просмотрите двоичные файлы (не Busybox) на вашем встроенном устройстве, чтобы узнать, есть ли у вас что-то, что может изменить GPT, например. gdisk/cgdisk/sgdisk.

(3) Кросс-компилировать gdisk/cgdisk/sgdisk или аналогичную программу, или даже gparted, так что работает на вашем встроенном устройстве.

(4) Поместите на жесткий диск таблицу разделов MBR в старом стиле вместо GPT и попытайтесь сохранить разделы, которые вы хотите сохранить (если вы хотите создать новый раздел, по крайней мере один из старых разделов имеет все равно идти). Это может уничтожить данные, если вы не будете осторожны, поэтому сначала сделайте резервную копию.

2
28.01.2020, 02:33

Теги

Похожие вопросы