VitisのSDイメージのマウント確認

別にXilinxの環境に限ったわけではなく、一般的なSDカードイメージのマウント方法です。

ここではVitis 2020.1で生成されたSDカードイメージをマウントします。

パーティションの確認

まずはfdiskでパーティションの確認です。

$ fdisk -l package/sd_card.img 
ディスク package/sd_card.img: 3.5 GiB, 3271557120 バイト, 6389760 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x8f2cc147

デバイス             起動 開始位置 最後から  セクタ サイズ Id タイプ
package/sd_card.img1 *        2048  2195455 2193408     1G 83 Linux
package/sd_card.img2       2195456  6496255 4300800   2.1G 83 Linux

ここでセクタサイズが512Byteであることと、各パーティションの開始セクタがわかりました。

パーティション1のマウント

パーティション1は次のようにマウントします。

マウント場所はカレントディレクトリのmntです。

$ sudo mount -o loop,offset=1048576 package/sd_card.img mnt

ここでoffsetは、セクタサイズ×開始セクタを指定します。

fdiskで調べたようにSDカードイメージのパーティション1は2,048セクタから始まり、セクタサイズが512なので次のようになります。

2,048×512 = 1,048,576

マウントしたmntディレクトリを確認します。

$ ls mnt
BOOT.BIN                             image.ub
Image                                mkbootbin.sh
binary_container_1.xclbin            mksdcard.sh
bl31.elf                             pmufw.elf
build_boot.bif                       sample_app
core-image-minimal-ultra96v2.ext4    u-boot.elf
core-image-minimal-ultra96v2.tar.gz  uEnv.txt
fsbl.elf                             zynqmp-ultra96-v2.dtb

ブートに必要なファイルがコピーされていますね。

私の場合は余計なファイルもコピーしていますが…

使い終わったらumountです。

$ sudo umount mnt

パーティション2の確認

パーティション2も開始セクタから計算してマウントして中身を確認します。

$ sudo mount -o loop,offset=1124073472 package/sd_card.img mnt
$ ls mnt
bin   dev  home  lost+found  mnt   run   sys  usr
boot  etc  lib   media       proc  sbin  tmp  var
$ sudo umount mnt

意図した通りになっていますね。

write: 2020/06/14/ 20:59:03