修正する

修正する

sd_card.imgが512000000バイト(488 MBなど)であるとします。

$file sd_card.img

sd_card.img:DOS / MBRブートセクタ。パーティション1:ID = 0xc、開始CHS(0x0,1,1)、終了CHS(0xdf、15,54)、開始セクター63、999873セクター、拡張パーティションテーブル(最終)

fdisk示す:

Selected partition 1
         Device: sd_card.img1
          Start: 63
            End: 999935
        Sectors: 999873
      Cylinders: 1158
           Size: 488.2M
             Id: c
           Type: W95 FAT32 (LBA)
    Start-C/H/S: 0/1/1
      End-C/H/S: 223/15/54

次のコマンドを使用してサイズを変更してみました。

$cp sd_card.img test.img

$dd if=/dev/zero of=test_zeros bs=1 count=1 seek=2G

$cat test_zeros >> test.img

$sudo parted test.img resizepart 1 2.5GB

$file test.img

test.img:DOS / MBRブートセクタ。パーティション1:ID = 0xc、CHS開始(0x0、1、1)、CHS終了(0x12f、239,61)、開始セクタ63、4882750セクタ

fdisk示す:

Selected partition 1
         Device: test.img1
          Start: 63
            End: 4882812
        Sectors: 4882750
      Cylinders: 334
           Size: 2.3G
             Id: c
           Type: W95 FAT32 (LBA)
    Start-C/H/S: 0/1/1
      End-C/H/S: 303/239/61

その後、画像を32GBのSDカードに書き込みます。

dd if=test.img of=/dev/mmcblk0 conv=fsync status=progress

SDカードを装着すると...

# lsblk

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk0     179:0    0 29.7G  0 disk
`-mmcblk0p1 179:1    0  2.3G  0 part /run/media/mmcblk0p1

これは有望に見えましたが、df -hそうではありませんでした。元のsd_card.imgをSDカードに書き込んで修正した後に表示される内容は次のとおりです。

Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1  485M  159M  326M  33% /run/media/mmcblk0p1

lsblkブロックデバイスサイズとファイルシステムサイズが表示されるため、dfこれはパーティションに問題があることを示します。

残念ながら、より簡単な方法はFAT32パーティションでは機能しないため、これに限定されます。必要なライブラリをインストールした後に試しましたが、sudo gparted sd_card.img成功しませんでした。代わりに、さまざまなタスクが表示されました。sd_card.img1ファイルが存在しないと出てきます。

私のプログラムにどのような問題があるのか​​、それを正しく実行する方法についての提案はありますか?

注: GNU Parted 3.4

修正する

@eyoung100の提案に従って、元のsd_card.imgをSDカードに書き込んでから、partedGPartedと共にインストールされたコマンドラインツールを使用して利用可能なスペースを拡張してみました。

sudo parted

select /dev/mmcblk0

print free

Number  Start   End     Size    Type     File system  Flags
 1      32.3kB  512MB   512MB   primary  fat32        lba
        512MB   31.9GB  31.4GB           Free Space

resizepart 1 100%

print free

Number  Start   End     Size    Type     File system  Flags
 1      32.3kB  31.9GB  31.9GB  primary  fat32        lba

quit

GPartedは変更を適用するように指示されるまで何もしないので、何も保存せずに終了したいかどうか疑問に思いましたが、SDカードから起動すると変更が表示されるので、「partedThe」ハンドに近いと思います。 off」バージョンでは、自分が何をしているのかを知っておく必要があります。

# df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1  485M  172M  313M  36% /run/media/mmcblk0p1

# lsblk

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk0     179:0    0 29.7G  0 disk
`-mmcblk0p1 179:1    0 29.7G  0 part /run/media/mmcblk0p1

前述のように変更が実装partedされましたが、Free Spaceまたはdf -h。 FAT32パーティションの実際のサイズはまだ約488MBです。

# fdisk -x /dev/mmcblk0

Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe847ab93

Device         Boot Start      End  Sectors Id Type            Start-C/H/S   End-C/H/S Attrs
/dev/mmcblk0p1         63 62333951 62333889  c W95 FAT32 (LBA)       0/1/1 1023/254/63

このsd_card.imgを別のデバイスに接続して起動すると、そのデバイスによってインストールされます。まだ何をすべきかわかりませんが、これを見ました>

# cat /run/systemd/transient/run-media-mmcblk0p1.mount

# This is a transient unit file, created programmatically via the systemd API. Do not edit.
[Unit]
After=dev-mmcblk0p1.device
BindsTo=dev-mmcblk0p1.device

[Mount]
What=/dev/mmcblk0p1
Options=umask=007,gid=6

[Unit]
[email protected]
[email protected]

ベストアンサー1

私たち全員を混乱から救うために、今回の答えでこの記事を書いています。

何をするのか分からない

完了した後も、元の画像がまだマウントされているか、サイズが正しく調整されていない可能性があります。

新しいスタート

  1. すべてのSDカードをマウント解除します。
  2. これに従ってくださいコマンドラインチュートリアル、またはこれを使用してくださいツール/Etcherこのチュートリアルリンクでは、小さな500MBの画像ファイルをより大きな32GBのSDカードまたは他のデバイスに書き込んでください。

ノート:上記のチュートリアルはPiベースのオペレーティングシステム用に書かれていますが、この手順はすべてのSDカードに適用されます。また、埋め込まれたコマンドを再構築しなかったため、混乱が最小限に抑えられました。

  1. これで、抽出された488MBのイメージファイルが32GBのカードに書き込まれ、約31.5GBが残ります。

私が正しく理解したら、あなた(OP)は完全な32GBを満たすようにパーティションを拡張したいと思います。

拡張パーティション

  1. 上記の手順2では、元の小さな画像を大きなSDカードに書き込んだため、もう2枚目の画像の作成について心配する必要はありません。
  2. GPartedを起動します。
  3. GPartedがデバイスノードを再スキャンして更新できるように、32 GB SDカードを取り外して再挿入します。
  4. SDカードには小さな500 GBのパーティションが表示され、バーの左側にはターコイズボックスで囲まれ、右側にはマークされた大きな灰色の塊がありますFree Space
  5. ターコイズボックスの端にある矢印を使用可能なスペースの端まで(最大右に)ドラッグします。
  6. 変更を適用/保存するには、ツールバーのチェックマークをクリックします。

これがあなたが達成したいことを教えてください。そうでない場合は、質問に明確または詳細を提供する必要があります。

おすすめ記事