原本以為在 BerryBoot 中使用的 Image 檔的製作方式都是一樣,所以製作了 Raspbian / Lubuntu / Bananian / ArchLinux,在測試時,前三者都沒有問題,唯獨 ArchLinux 有問題,後來使用 Google 在網路上搜尋了一下,發現好像 ArchLinux 的製作方式有些不一樣。
參考網頁:
Arch Linux ARM • View topic – Installation problems with BerryBoot
Convert other Linux distributions for Berryboot – Developer-Blog
Raspberry Pi • View topic – rPi, BerryBoot, ArchLinux (2 out of 3 ain’t bad!)
底下是重新製作的方式:[@more@]
kpartx 使用參數
$ kpartx
usage : kpartx [-a|-d|-l] [-f] [-v] wholedisk
-a add partition devmappings
-r devmappings will be readonly
-d del partition devmappings
-u update partition devmappings
-l list partitions devmappings that would be added by -a
-p set device name-partition number delimiter
-g force GUID partition table (GPT)
-f force devmap create
-v verbose
-s sync mode. Don’t return until the partitions are created
將 .img 檔的第二個分割區取出來
$ sudo kpartx -av ArchLinux_For_BananaPi_v2_0.img
add map loop0p1 (253:0): 0 102400 linear /dev/loop0 2048
add map loop0p2 (253:1): 0 7063552 linear /dev/loop0 104448
建立 /mnt/tmp 目錄
$ sudo mkdir /mnt/tmp
將第二個分割區掛載到 /mnt/tmp
$ sudo mount /dev/mapper/loop0p2 /mnt/tmp/
切換目錄到 /mnt/tmp
$ cd /mnt/tmp
刪除 /mnt/tmp/lib 目錄
$ sudo rm lib
搬移 /mnt/tmp/usr/lib 目錄成為 /mnt/tmp/lib 目錄
$ sudo mv usr/lib lib
切換到 /mnt/tmp/usr 目錄
$ cd usr
進行目錄連結
$ sudo ln -s ../lib lib
切換回使用者目錄
$ cd
進行轉換
$ sudo mksquashfs /mnt/tmp/ converted_ArchLinux_image_for_berryboot.img -comp lzo -e lib/modules
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on converted_ArchLinux_image_for_berryboot.img, block size 131072.
[=- ] 191/29051 0%
卸載 /mnt/tmp 分割區
$ sudo umount /mnt/tmp
$ sudo rm -rf /mnt/tmp
$ sudo kpartx -d ArchLinux_For_BananaPi_v2_0.img
loop deleted : /dev/loop0
將製作好的 Image 移到 BerrBoot 的 Image 目錄
$ sudo mv converted_ArchLinux_image_for_berryboot.img /media/berryboot/images/ArchLinux_For_BananaPi_v2_0_Server.img