アップデート:テスト結果

アップデート:テスト結果

ここに画像の説明を入力してください。

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システムバージョンはext2ext3およびext4ファイルシステムをサポートしているので、SDカードに使用されるファイルシステムがそのうちの1つであれば、答えは次のようになります。はい

しかし、複数のパーティションを持つことができるカード全体をイメージしたようです。この場合、mountコマンドは一度に1つのファイルシステムしか処理できないため、「イメージファイルのマウント」しか実行できません。フルディスクイメージでは、パーティションテーブルは通常ディスクの先頭にあるスペースを占有しているため、ディスクイメージ全体を直接マウントしようとすると、イメージの最初のファイルシステムにアクセスできなくなる可能性があります。

システムにlosetupその-Pオプションをサポートするコマンドがある場合は、イメージファイルの各パーティションに1つずつデバイスがlosetup -P /dev/loop0 rpi4_Ubuntu18.1_64GB.image提供されます。その後、各パーティションデバイスをマウントして実行し、ループデバイスをアンマウントして取り外します。/dev/loop0p1/dev/loop0p2zerofreelosetup -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つの手順が必要です。

関連情報