
既存の組み込み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パーティションテーブルをハードドライブに配置し、保持したいパーティションを維持します(新しいパーティションを作成するには、とにかく既存のパーティションを1つ以上削除します)。注意しないとデータが破損する可能性があるため、まずバックアップを作成してください。