NOOBS自定義多系統(tǒng)啟動(dòng)

2017-09-23 初成文
2018-08-06 更新完整示例

一娘荡、準(zhǔn)備工作:

需要linux環(huán)境(虛擬機(jī)也可)
標(biāo)準(zhǔn)的適用樹(shù)莓派的IMG鏡像文件
基本的linux知識(shí)+強(qiáng)大的搜索資料解決問(wèn)題的能力

二干旁、介紹:

目前樹(shù)莓派多系統(tǒng)啟動(dòng)主要是noobs和berryboot
兩個(gè)各有優(yōu)缺點(diǎn),berryboot可以直接在berryboot界面?zhèn)浞菹到y(tǒng)或數(shù)據(jù)它改,缺點(diǎn)也不少疤孕,比如分區(qū)是共享的,img是只讀的央拖,官方系統(tǒng)支持更新慢等祭阀。
noobs是官方工具,各個(gè)系統(tǒng)之間是獨(dú)立的鲜戒,一個(gè)系統(tǒng)掛了另一個(gè)仍然能夠正常啟動(dòng)专控,資料相對(duì)較多。
另外還有一個(gè)PINN基于noobs的增強(qiáng)版遏餐,添加一些功能伦腐,比如無(wú)人值守自動(dòng)安裝、wifi自動(dòng)配置等失都,可按此文自定義安裝第三方系統(tǒng)柏蘑。

本文示例使用noobs從u盤(pán)安裝kali(VM下制作)并拓展至最大分區(qū)幸冻。
可見(jiàn)第二項(xiàng)kali為離線(xiàn)安裝

這里先說(shuō)一下noobs的相關(guān)內(nèi)容,從v1.5版本開(kāi)始安裝后會(huì)自動(dòng)建立一個(gè)fat32格式的RECOVERY分區(qū)(主分區(qū))咳焚,用來(lái)存放noobs啟動(dòng)文件和一個(gè)ext4格式的SETTINGS分區(qū)(邏輯分區(qū))用來(lái)存放noobs相關(guān)信息如已安裝系統(tǒng)boot/root位置洽损。余下拓展分區(qū)用來(lái)安裝系統(tǒng)。

三革半、NOOBS里的系統(tǒng)至少需要4個(gè)文件:

os.json                      //系統(tǒng)描述
partitions.json            //分區(qū)描述
boot.tar                      //boot分區(qū)文件
root.tar                      //root分區(qū)文件
上面四個(gè)文件是必須的碑定,缺一不可,其它則是不必須的:
slides或slides_vga       //文件夾內(nèi)放說(shuō)明性圖片,安裝時(shí)在主界面以幻燈片播放,如官方提供則可由marketing.tar解壓得https://downloads.raspberrypi.org/
Logo.png            //Logo名字須與文件夾名字相同又官,大小40x40
partition_setup.sh  //分區(qū)腳本延刘,在系統(tǒng)安裝完成后立即執(zhí)行,如無(wú)則需要在cmdline.txt設(shè)定root分區(qū)位置
1六敬、os.json示例
{
    "description": "Kali Linux for RasPi added to NOOBS Bootloader",
    "kernel": "4.4",
    "name": "Kali",
    "release_date": "2017-05-25",
    "supported_hex_revisions": "1040,1041,2082",
    "supported_models": [
        "Pi 2",
        "Pi 3"
    ],
    "url": "https://www.kali.org/",
    "version": "2017.1"
}

其中碘赖,
name必須與文件夾名字相同,最好不要留空格
description為系統(tǒng)簡(jiǎn)介外构,出現(xiàn)在選擇界面
release_date如為官方系統(tǒng)崖疤,為避免從網(wǎng)絡(luò)下載更新版本可改為更晚的日期
supported_hex_revisions:"2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041,0092,0093,2082"表示兼容所有pi,2082對(duì)應(yīng)樹(shù)莓派3b

2典勇、partitions.json示例
{
  "partitions": [
    {
      "label": "boot",
      "filesystem_type": "FAT",
      "partition_size_nominal": 100,
      "want_maximised": false,
      "uncompressed_tarball_size": 51
    },
    {
      "label": "root",
      "filesystem_type": "ext4",
      "partition_size_nominal": 3867,
      "want_maximised": true,
      "mkfs_options": "-O ^huge_file",
      "uncompressed_tarball_size": 3133
    }
  ]
}

其中
label必須與兩個(gè)tar名字一致;
filesystem_type文件系統(tǒng)類(lèi)型/boot為fat劫哼,/root為ext4;
uncompressed_tarball_size:boot.tar/root.tar解壓后的大小
partition_size_nominal:設(shè)定分區(qū)大小
want_maximised:一旦設(shè)定為true,noobs就會(huì)自動(dòng)將可用空間分配到該分區(qū)割笙,因而當(dāng)設(shè)置為true時(shí)partition_size_nominal設(shè)置多大也無(wú)所謂了权烧。
mkfs_options:mkfs命令,hugefile表示允許文件大于2TB

3伤溉、下面制作boot.tar和root.tar

①?gòu)?a target="_blank" rel="nofollow">官網(wǎng)下載最新版的kali鏡像般码。

根據(jù)你派的版本選擇,pi2和pi3選第一個(gè)

②vm虛擬機(jī)設(shè)置共享文件夾(或直接使用linux實(shí)體機(jī))
設(shè)置共享文件夾

③掛載上面的文件系統(tǒng)后乱顾,切換到share目錄下板祝,比如我的是/mnt/hgfs/share(后文同樣,需切換到自己實(shí)際的目錄)

cd /mnt/hgfs/share
sudo mkdir /mnt/img1    //創(chuàng)建兩個(gè)掛載點(diǎn)來(lái)掛載
sudo mkdir /mnt/img2
sudo kpartx -av kali-2017.01-rpi2.img    //裝載映像文件

輸出IMG內(nèi)部?jī)蓚€(gè)分區(qū):

add map loop0p1 (253:0): 0 125000 linear 7:0 1
add map loop0p2 (253:1): 0 14209047 linear 7:0 125001

創(chuàng)建boot.tar

mount -o loop,ro,noexec /dev/mapper/loop0p1 /mnt/img1
cd /mnt/img1
bsdtar --numeric-owner --format gnutar  -cvpf /tmp/boot.tar .
ls /tmp/boot.tar -l --block-size=1MB
xz -9 -ev /tmp/boot.tar

創(chuàng)建root.tar并卸載剛才掛載的映像

mount -o loop,ro,noexec,noload /dev/mapper/loop0p2 /mnt/img2
cd /mnt/img2
bsdtar --numeric-owner --format gnutar --one-file-system -cpvf /tmp/root.tar .
xz -9 -ev /tmp/root.tar
sudo kpartx -dv kali-2017.01-rpi2.img

此時(shí)走净,已經(jīng)生成boot.tar和root.tar在/tmp目錄下券时,將其移出虛擬機(jī)與上面的兩個(gè)json文件組成kali文件夾放在/os文件夾下即可。

mv /tmp/boot.tar.xz /mnt/hgfs/share
mv /tmp/boot.tar.xz /mnt/hgfs/share

為了最大化利用sd卡空間伏伯,只把noobs除了os文件夾外的文件放于sd卡根目錄下橘洞,os文件夾放于u盤(pán)根目錄下,這樣noobs會(huì)自動(dòng)調(diào)整分區(qū)recovery為最小说搅,只占用大概63M左右而剩余空間幾乎全部用來(lái)安裝系統(tǒng)炸枣。

遇到的一個(gè)坑是默認(rèn)啟動(dòng)boot和root分區(qū)是mmcblkp1和mmcblkp2,而實(shí)際應(yīng)該是mmcblkp6和mmcblkp7。后來(lái)直接把Raspbian的partition_setup.sh借來(lái)用(也可手動(dòng)修改)适肠,跟上面4個(gè)文件一起放到/os/kali同一文件夾下霍衫,logo可自制40x40像素,如下圖:

/os/kali文件夾下的文件列表

水平有限侯养,時(shí)間倉(cāng)促慕淡,難免有誤,歡迎指正沸毁。

完整示例:

目錄中kali-linux-2018.2-rpi3-nexmon.img.xz需先解壓
本文示例方法
注意offset參數(shù)是根據(jù)fdisk輸出的start參數(shù)來(lái)確定的

主要參考文章:
1.Nitrus/noobs
2.raspberrypi/noobs
3.NOOBS安裝自定義系統(tǒng)
4.QUAD BOOT – RASPBIAN ‘PIXEL’, RETROPIE, RASPLEX, KODI

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市傻寂,隨后出現(xiàn)的幾起案子息尺,更是在濱河造成了極大的恐慌,老刑警劉巖疾掰,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搂誉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡静檬,警方通過(guò)查閱死者的電腦和手機(jī)炭懊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拂檩,“玉大人侮腹,你說(shuō)我怎么就攤上這事〉纠” “怎么了父阻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)望抽。 經(jīng)常有香客問(wèn)我加矛,道長(zhǎng),這世上最難降的妖魔是什么煤篙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任斟览,我火速辦了婚禮,結(jié)果婚禮上辑奈,老公的妹妹穿的比我還像新娘苛茂。我一直安慰自己,他們只是感情好鸠窗,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布味悄。 她就那樣靜靜地躺著,像睡著了一般塌鸯。 火紅的嫁衣襯著肌膚如雪侍瑟。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音涨颜,去河邊找鬼费韭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛庭瑰,可吹牛的內(nèi)容都是我干的星持。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼弹灭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼督暂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起穷吮,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逻翁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后捡鱼,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體八回,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年驾诈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缠诅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乍迄,死狀恐怖管引,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情闯两,我是刑警寧澤汉匙,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站生蚁,受9級(jí)特大地震影響噩翠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜邦投,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一伤锚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧志衣,春花似錦屯援、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至绿店,卻和暖如春吉懊,著一層夾襖步出監(jiān)牢的瞬間庐橙,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工借嗽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留态鳖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓恶导,卻偏偏與公主長(zhǎng)得像浆竭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惨寿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言缸废,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 99,215評(píng)論 9 467
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理驶社,服務(wù)發(fā)現(xiàn)企量,斷路器,智...
    卡卡羅2017閱讀 134,637評(píng)論 18 139
  • Linux系統(tǒng)一般有4個(gè)主要部分: 內(nèi)核亡电、shell届巩、文件系統(tǒng)和應(yīng)用程序。內(nèi)核份乒、shell和文件系統(tǒng)一起形成了基本...
    偷風(fēng)箏的人_閱讀 3,247評(píng)論 1 17
  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,149評(píng)論 2 34
  • 從下午一點(diǎn)多恕汇,睡醒午覺(jué),到現(xiàn)在或辖,一直盯著時(shí)間瘾英,等到下午五點(diǎn)四十五分,等到覺(jué)得你差不多離開(kāi)實(shí)驗(yàn)室颂暇,才給你打電話(huà)缺谴。 為...
    TANXINLE閱讀 147評(píng)論 0 0