相信大家都有一个共识,树莓派的可折腾性带来的乐趣远大于其本身。正应了那句话,麻雀虽小但五脏俱全。在小编这主要给它定义了三种用途,也对应着三个系统,分别是Raspbian、Kali和OpenWRT。Raspbian可用作日常上网、临时便捷服务器、测试用机等。Kali提供了便利的审计软件及很多受欢迎的开源工具,树莓派搭载它可以随时随地对网络进行测试及管理。当然,OpenWRT实现了回到家它就变身一个智能路由器。相信各位都很喜欢。

小编眼里的它

我不介意给各位分享小编的树莓派的真容,或者会触发各位一些灵感,小编也很开心了。看图 my raspberry 话说细心的各位不知有没看出一些小细节,注意小编的电源处两根输出线, 黑色那根是1A电流输出,而白色那根是2A输出,这里的移动硬盘是以前退役的笔记本的硬盘改的,至少需要500mA电流可供其稳定运行,直接插在树莓派上可想运转都成问题,这里的Hub带有独立供电口,而且输出电流为1A既保障了硬盘的供电也支持了无线网卡的稳定供电需求。不出意外这20000毫安的充电宝可连续待命24小时以上。

安装多系统

在正式开始之前先看一下小编硬盘的布局,下面就是最终的效果,这里充分利用了它的价值,一方面给树莓派提供系统支持,另一方面可作系统维护盘及数据拷贝盘使用。所以会觉得分区比较多。 my raspberry Patition 7以前的分区是noobs自己划分的,后面的分区是小编根据需求调整的。Patition 8到Patition 11分别是kali和OpenWRT。Patition 12用作系统UEFI安装盘制作分区,Patition 13用作数据交换的分区,比如日常拷贝数据,Patition 14是Mac OS X 10.13.6安装盘。

(1)在https://www.raspberrypi.org/downloads/noobs/页面选择离线版的NOOBS安装包。

(2)将移动硬盘转为传统MBR模式并将其格式化为fat32格式。注意是一个分区。

(3)将离线版NOOBS的zip包解压后复制到移动硬盘的fat32分区的根目录。

(4)需将树莓派3B设置为能够从usb启动,详情请google。

(5)给树莓派加电,它会自动执行noobs的初始化脚本,包括对硬盘分区。在逻辑分区里最大的那个root分区就是需要调整的对象。也就是末尾的那个分区。

(6)在linux下推荐使用gparted工具对其进行进一步的分区操作,先卸载最后一个分区,后缩小它的大小,相应的后面会多出空闲的部分去新建分区。可以参考小编的硬盘结构做相应的调整。

(7)编辑SETTINGS分区下的installed_os.json文件,追加两条启动菜单,其他选项可以不变,只需把name项改成自己的操作系统的名字即可,还有就是系统占用的哪几个分区也要加上。修改后如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[
 {
  "bootable" : true,
  "description" : "A port of Debian Stretch for the Raspberry Pi (full desktop version)",
  "folder" : "/mnt/os/Raspbian",
  "icon" : "/mnt/os/Raspbian/Raspbian.png",
  "name" : "Raspbian",
  "partitions" : [
"/dev/sda6",
"/dev/sda7"
  ],
  "release_date" : "2018-06-27",
  "supported_models" : [
"Pi Model",
"Pi 2",
"Pi Zero",
"Pi 3",
"Pi Compute Module 3"
  ]
 },
 {
  "bootable" : true,
  "description" : "A port of Debian Stretch for the Raspberry Pi (full desktop version)",
  "folder" : "/mnt/os/Raspbian",
  "icon" : "/mnt/os/Raspbian/Raspbian.png",
  "name" : "Kali",
  "partitions" : [
"/dev/sda8",
"/dev/sda9"
  ],
  "release_date" : "2018-06-27",
  "supported_models" : [
"Pi Model",
"Pi 2",
"Pi Zero",
"Pi 3",
"Pi Compute Module 3"
  ]
 },
 {
  "bootable" : true,
  "description" : "A port of Debian Stretch for the Raspberry Pi (full desktop version)",
  "folder" : "/mnt/os/Raspbian",
  "icon" : "/mnt/os/Raspbian/Raspbian.png",
  "name" : "OpenWRT",
  "partitions" : [
"/dev/sda10",
"/dev/sda11"
  ],
  "release_date" : "2018-06-27",
  "supported_models" : [
"Pi Model",
"Pi 2",
"Pi Zero",
"Pi 3",
"Pi Compute Module 3"
  ]
 }
]

(8)将Kali for pi3和OpenWrt的系统解压出image文件,后在linux下进行挂载,使用cp -a src_dir dist_dir命令将对应分区的内容保持原属性拷贝到移动硬盘的分区。

(9)在kali的启动分区下编辑加入os_config.json文件,内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
 "description" : "A port of Debian Stretch for the Raspberry Pi (full desktop version)",
 "flavour" : "Kali",
 "imagefolder" : "/mnt/os/Kali",
 "keyboard" : "gb",
 "language" : "en",
 "partitions" : [
"/dev/sda8",
"/dev/sda9"
 ],
 "release_date" : "2018-06-27",
 "videomode" : 0
}

(10)修改kali启动分区下文件cmdline.txt的root分区为实际的位置/dev/sda9

1
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda9 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0

(11)修改kali分区/dev/sda9etc/fstab所对应的启动分区和root分区即可完成kali的初始化配置,至此可选择从Kali菜单启动了。

(12)在OpenWRT的启动分区下编辑加入os_config.json文件,内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
 "description" : "A port of Debian Stretch for the Raspberry Pi (full desktop version)",
 "flavour" : "Kali",
 "imagefolder" : "/mnt/os/OpenWRT",
 "keyboard" : "gb",
 "language" : "en",
 "partitions" : [
"/dev/sda10",
"/dev/sda11"
 ],
 "release_date" : "2018-06-27",
 "videomode" : 0
}

(13)修改OpenWRT启动分区下cmdline.txt为:

1
dwc_otg.lpm_enable=0 console=serial0,115200 kgdboc=serial0,115200 console=tty1 root=/dev/sda11 rootfstype=squashfs,ext4 rootwait

结语

到此,基本实现了树莓派的多系统安装,文中有些跳跃的地方,但都是经过实践证明过的,需要各位多花些心思折腾,写的不是太细,望见谅。重要的是思路。