BerryBoot - 使用 Image 來安裝系統

星期五, 3rd 十月 2014

本來一直以為 BerryBoot 只能從網路上下載作業系統來安裝而已,而在 10/1(三)  下午與 Banana Pi  的開發工程師討論過,才發現原來 BerryBoot 的功能非常強大,可以將原本系統的 Image 檔,直接拿來使用,一張記憶卡可以安裝多種作業系統,而且系統有問題,只要修改或刪除在  data 目錄之下相對應的作業系統名稱即可,如果要測試系統,就會非常的方便。
原本一直以為直接將 Image 檔,直接放置到  image 目錄即可,但結果是只能在 BerryBoot 的開機功能表中出現,卻無法開機,所以在網路上找了一下,發現 Image 檔案要轉換過才能正常使用。
參考網站:
‪葉難: Raspberry Pi使用BerryBoot多重開機
‪How to Multi-Boot Your Raspberry Pi with BerryBoot

底下是在 Banana Pi Raspbian  下進行操作
切換到 BerryBoot 所在的目錄(另外一張記憶卡)
$ cd /media/berryboot

切換到存放各系統的目錄
$ cd images

下載系統的 Image 來進行轉換
$ sudo wget ftp://140.111.74.109/BananaPi/Raspbian_For_BananaPi_v3.1.tgz

解壓縮
$ sudo tar xvzf Raspbian_For_BananaPi_v3.1.tgz


安裝所須套件
$ sudo apt-get install kpartx squashfs-tools

將 .img 檔的第二個分割區取出來
$ sudo kpartx -av Raspbian_For_BananaPi_v3_1.img
add map loop0p1 (253:0): 0 114688 linear /dev/loop0 8192
add map loop0p2 (253:1): 0 7045120 linear /dev/loop0 122880

$ sudo mount /dev/mapper/loop0p2 /mnt
/mnt/etc/fstab 中的 /dev/mmcblk 前面加上 #
$ sudo sed -i 's/^\/dev\/mmcblk/#/g' /mnt/etc/fstab

進行轉換
把 .img 的第二個分割區抓出來並變成 SquashFS 格式(BerryBoot 支援的格式)
$ sudo mksquashfs /mnt converted_image_for_berryboot.img -comp lzo -e lib/modules
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on converted_image_for_berryboot.img, block size 131072.
[==-                                                                                                                                       ]  1538/76511   2%

卸載 /mnt 分割區
$
sudo umount /mnt
$ sudo kpartx -d Raspbian_For_BananaPi_v3_1.img

刪除 Raspbian_For_BananaPi_v3_1.img
$ sudo rm -rf  Raspbian_For_BananaPi_v3_1.img

將轉換後的檔名改名
$ sudo mv
converted_image_for_berryboot.img Raspbian_For_BananaPi_v3_1.img

將 Banana Pi 的 Raspbian 關機後,更換記憶卡,改用 BerryBoot 記憶卡開機,就可以看到成果了!
如果要加入其它的作業系統,再重複上面的步驟即可!