支援Raspberry Pi的作業系統很多,眼花撩亂不可勝數,我主要使用官方釋出的Raspbian,但時不時也想嘗試看看別的,若一張記憶卡只能裝一個作業系統的話,有點不方便,還好,有了BerryBoot後,就能在一張記憶卡內裝入多個作業系統。
先到官方網站下載BerryBoot,我下載的是berryboot-20121126.zip。
準備一張SD記憶卡,因為BerryBoot將會重新分割並格式化記憶卡(為了安裝多個作業系統), 所以,如果你記憶卡裡有重要的資料,請備份。
底下是我的8G記憶卡,重新格式化後只有一個分割區。
將berryboot-20121126.zip解壓縮後的所有檔案通通複製到記憶卡裡,不需要使用特別的燒錄工具,內容如下:
然後放進Raspberry Pi開機,看到如下畫面,選擇Wired或Wifi網路連線方式。
然後選擇要把作業系統灌到哪裡去,可以灌到記憶卡裡,也可以灌到外接的USB隨身碟或硬碟裡。但我只有灌到記憶卡裡。
注意,雖然可以灌到外接硬碟裡,但Raspberry Pi開機時,還是必須插上記憶卡。
然後BerryBoot會先暫時把自己複製到記憶體,然後分割、格式化記憶卡,再把自己複製回記憶卡。
選擇想要安裝的作業系統發行套件,從網路下載安裝。
下載中。
基本上,每個Raspberry Pi的Linux發行套件映像檔裡有兩個分割區,一個通常稱為boot分割區,放韌體bootloader、一些設定檔、與Linux核心,另一個是放根檔案系統(各種應用軟體、設定檔、驅動程式、等等)。BerryBoot的原理是:共用boot分割區,然後把發行套件映像檔的第二個分割區獨立置放。
我先安裝了Raspbian。
然後又安裝了OpenELEC與Puppy。
以上是從網路下載BerryBoot提供的發行套件,但是,它提供的Raspbian不是最新的,那我是不是可以自行安裝呢?
可以,但是滿麻煩的,你必須把.img檔的第二個分割區取出來,放在USB隨身碟(或記憶卡+讀卡機)裡,然後由BerryBoot安裝。
要把.img檔的第二個分割區取出來,需要一台Linux機器,並且安裝了kpartx與mksquashfs。
$ sudo apt-get install kpartx squashfs-tools
然後,底下指令可將.img檔的第二個分割區取出來。
我以Raspberry Pi官方的2012-12-16-wheezy-raspbian.img為例。
$ sudo kpartx -av 2012-12-16-wheezy-raspbian.img
add map loop0p1 (252:5): 0 117187 linear /dev/loop0 1
add map loop0p2 (252:6): 0 3493888 linear /dev/loop0 118784
$ sudo mount /dev/mapper/loop0p2 /mnt
$ sudo mksquashfs /mnt converted_image.img -comp lzo -e lib/modules
$ sudo umount /mnt
$ sudo kpartx -d 2012-12-16-wheezy-raspbian.img
以上指令就是把.img的第二個分割區抓出來並變成SquashFS格式(BerryBoot支援的格式),所以我得到了converted_image.img。
將converted_image.img放進USB隨身碟(或外接硬碟),插進Raspberry Pi的USB埠,然後在開機時,長按"Add OS",可選擇"Copy OS from USB stick"。
選擇檔案。
哇,灌好囉。
然後啟動它試試看吧。
哇哩咧,失敗了,嗯,fsck、/run/rootdev、啥?
我也懶得弄了,因為畢竟BerryBoot還不能說是真正的多重開機,它會共用韌體bootloader、Linux核心與共享程式庫,所以不能安裝其他種類的作業系統,例如RISC OS與Plan 9。
將來應該會有人開發出更強的多重開機程式吧。
您好,BerryBoot 有更新到 2.0 的版本,小弟有安裝 Wheezy 與 OpenELEC 都均為 2012.12 的版本,只是小弟還尚未找到超頻的方法,因為 raspi-config 無 overclock 的選項~
ReplyDelete我也看到2.0版了,還沒試,網站尚找不到新增功能列表。
Delete超頻嗎,試試看手動編輯config.txt。
手動編輯 config.txt 是可行的,只是電壓要再加壓 0.1V 方能穩定,還有 berryboot 有更新到 berryboot-20130213.zip 的版本喔~
ReplyDeleteP.S. Raspberry Pi 也更新到 2013-02-09-wheezy-raspbian.zip 了~
用這方式開機 能超頻嗎?
ReplyDelete有config.txt就可以。
Delete$ sudo mksquashfs /mnt converted_image.img -comp lzo -e lib/modules
ReplyDelete有個問題請教,關於lib/modules是從這段是從2012-12-16-wheezy-raspbian.img來出來的library對吧?另外關於-comp lzo -e看不太明白。請指教。
-comp lzo表示使用LZO壓縮演算法。
Delete-e代表要排除掉哪些檔案與目錄。
轉換後的檔案屬性好像是唯讀的,
ReplyDelete所以還要用sudo chmod 777 *.img改掉屬性,
這樣才可以copy到USB Disk,讓Berryboot能夠安裝開機。