イメージファイルのマウント

イメージファイルをマウントするときmountコマンドならOKだがlosetup使うときは注意が必要です。offsetオプションを使うときは--sizelimitオプションを組み合わせないとパーティションの枠を越えてしまいます。

例)

losetup -v -f -o $((40960*512)) --sizelimit $((30736351*512)) eMMC_archlinux.img

本題に入るとイメージファイルのマウントをしたのはSamsungのChromeBookのeMMCにSDのArchlinuxを移し替えるためでした。結果はNGでした。原因は微妙なパーティションの仕様だと推測されます。既存のシステムをハッキングしてOSを入れ変えることはいろいろ制約があり一筋縄にはいきません。それで原点に立ち帰ってArchlinuxの指示通りインストールします。ただしswapを作りたいので次のように追加します。

cgpt add -i 3 -t data -b xxxxxx -s `expr yyyyyy - xxxxxx` -l Swap /dev/mmcblk0

カーネルをコピーしRootはSDのバックアップイメージをマウントするか直接SDをマウントしてcp -a等で移します。リブートして無事立ち上がることを確認してmkswap /dev/mmcblk0p3としてswapを作成しfstabに登録します。eMMCのサイズがSDより若干小さいのでeMMCのサイズに合わせてddコマンドでSDにコピーすればバックアップにもなります。

$ fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 14.7 GiB, 15758000128 bytes, 30777344 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: gpt
Disk identifier: 261CDA79-03A0-704F-A217-1B45FA972C54

Device            Start      End  Sectors  Size Type
/dev/mmcblk0p1     8192    40959    32768   16M ChromeOS kernel
/dev/mmcblk0p2    40960 26999999 26959040 12.9G Microsoft basic data
/dev/mmcblk0p3 27000000 30777310  3777311  1.8G Microsoft basic data

$ free
              total        used        free      shared  buff/cache   available
Mem:        2057136      316088     1302804        5280      438244     1674936
Swap:       1888648           0     1888648

参考: