Ubuntu 16.04:次のコマンドを使用して64 GBのSDカードイメージを作成します。
date; sudo sh -c 'pv /dev/mmcblk0 >rpi4_Ubuntu18.1_64GB.image'; date
Ubuntu 18.1を搭載したrasbperry pi SDカード
Ubuntu 16.04ノートブックは次のことができます。
- .imageファイルをマウントしますか?
- .imageファイルのマウントポイントでzerofreeを実行していますか?
- .imageファイルを削除しますか?
次のコマンドを使用して、イメージファイルをSDカードに復元してカードを処理できることを知っています。自由度ゼロそしてもう一度画像をキャプチャしてみてください。複数の.imageファイルをSDカードに復元せずに処理できるといいでしょう。
アップデート:テスト結果
イメージが /dev/loop9p2 に正常にマウントされました。
$ sudo losetup -P /dev/loop9 rpi4_Ubuntu18.1_64GB.image
$ ls -l /dev/loop9*
brw-rw---- 1 root disk 7, 9 Feb 2 19:12 /dev/loop9
brw-rw---- 1 root disk 259, 0 Feb 2 19:12 /dev/loop9p1
brw-rw---- 1 root disk 259, 1 Feb 2 19:12 /dev/loop9p2
無敗:
$ zerofree -v /dev/loop9p2
zerofree: failed to open filesystem /dev/loop9p2
ゼロリリースが必要sudo
:
$ sudo zerofree -v /dev/loop9p2
14346339/14348998/15073019
- 14346339見つかった非ゼロブロックの数
- 14348998 ファイルシステムの利用可能なブロック数
- 15073019 ファイルシステムの総ブロック数
ボーナス:スクリプトを使用して画像サイズを縮小するフィッシュリンク
答え1
zerofree
デフォルトの記憶媒体に関係なく、互換性のあるファイルシステムで実行できます。zerofree
私のDebian 10システムバージョンはext2
、ext3
およびext4
ファイルシステムをサポートしているので、SDカードに使用されるファイルシステムがそのうちの1つであれば、答えは次のようになります。はい。
しかし、複数のパーティションを持つことができるカード全体をイメージしたようです。この場合、mountコマンドは一度に1つのファイルシステムしか処理できないため、「イメージファイルのマウント」しか実行できません。フルディスクイメージでは、パーティションテーブルは通常ディスクの先頭にあるスペースを占有しているため、ディスクイメージ全体を直接マウントしようとすると、イメージの最初のファイルシステムにアクセスできなくなる可能性があります。
システムにlosetup
その-P
オプションをサポートするコマンドがある場合は、イメージファイルの各パーティションに1つずつデバイスがlosetup -P /dev/loop0 rpi4_Ubuntu18.1_64GB.image
提供されます。その後、各パーティションデバイスをマウントして実行し、ループデバイスをアンマウントして取り外します。/dev/loop0p1
/dev/loop0p2
zerofree
losetup -d /dev/loop0
losetup
コマンドがこのオプションをサポートしていない場合は、-P
他のオプションがあります。kpartx
ツール(時には別々にパッケージ化されるか、device-mapper-multipath
ツールの一部として提供される)は、個々のパーティションのマップを作成できます。この場合、最初にlosetup /dev/loop0 rpi4_Ubuntu18.1_64GB.image
接続されたループデバイスを使用してから、検出されたパーティションごとkpartx -a /dev/loop
にマッピングされたデバイスを作成します。この場合、パーティションデバイスの名前/dev/mapper/loop0p1
はわずかに異なります。インストールとzerofree
プロセスは同じですが、ファイルシステムをアンマウントしてクリーンアップするには、まずkpartx -d /dev/loop0
パーティションマップデバイスを削除してからlosetup -d /dev/loop0
メインループデバイスを削除する2つの手順が必要です。