기존 임베디드 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 파티션 테이블을 작동합니다.
gdisk
(2) 임베디드 장치(비지박스 아님)의 바이너리 파일을 확인하여 // 등 GPT를 수정할 수 있는 것이 있는지 확인합니다 cgdisk
.sgdisk
(3) 크로스 컴파일 gdisk
// 또는 이와 유사할 수도 있으므로 임베디드 장치에서 실행할 수 있습니다 cgdisk
.sgdisk
gparted
(4) GPT 대신 구식 MBR 파티션 테이블을 하드 드라이브에 배치하고 유지하려는 파티션을 유지하십시오(새 파티션을 생성하려면 어쨌든 기존 파티션을 하나 이상 삭제하십시오). 주의하지 않으면 데이터가 손상될 수 있으므로 먼저 백업을 만드세요.