NOOBS安装自定义系统

NOOBS安装自定义系统

简介

前段时间折腾了一下树莓派,树莓派的操作系统安装时需要自己烧录img文件到SD卡中。烧录SD卡大体分为两种方式一种是吧一个img文件烧录到整张卡中,另一种是通过NBOOBS将多个img文件烧录到一张卡中。前者在windows下通过Win32DiskImager这个软件就能轻松的做到,后者需要使用到NBOOBS,下载地址:http://downloads.raspberrypi.org/NOOBS_latest

NOOBS提供多个操作系统共存的方案,他提供了一个图形化的安装界面,在安装过程中读取定义好的配置文件,来选择要安装的各个系统。通过上文提到的下载地址下载回来的NOOBS,里面只预置了Raspbian这个系统,但是我们想安装一些自定义的系统改怎么办呢?这就是本文要解决的问题。

实现

关于添加自定义操作系统的问题,在NOOBS的github文档上也是有说明的,详见这里。假设我们现在要安装RetroPie这个系统,我们首先从官方地址上把它下载下来。根据github上提到的教程,那么制作NOOBS系统就应该是下面几步。

  1. 下载NOOBS.
  2. 解压下载后的文件。
  3. 进入os文件夹。
  4. 选择其中的一个子文件,拷贝一份新的。这里就拿Raspbin这个文件夹开刀。拷贝完成后,将文件夹改名RetroPie。
  5. 好,现在我们修改RetroPie文件夹下的os.json文件,这里面定义的数据将会在安装的时候显示为操作系统的标题和描述等信息。我大体上将其改为如下形式:
    {
      "name": "retropie",
      "version": "2.3",
      "release_date": "2014-05-31",
      "kernel": "3.12",
      "description": "The RetroPie Project started with the idea of turning the Raspberry Pi into a retro-gaming console and evolved ever since.",
      "url": "http://blog.petrockblock.com/retropie/",
      "username": "pi",
      "password": "raspberry",
      "feature_level": 123900
    }
    

    配置文件2.1 os.json

其中name肯定就是名称了,然后是version版本,description描述等信息。

6. 【可选】你可以放一个RetroPie.png来定义一下当前操作系统的logo。

7. 【可选】你可以在文件夹slides_vga中放一下说明性的图片,他会在安装过程中当成幻灯片播放出来。

8. 这一步是进行分区文件配置,先把做好的分区文件partitions.json贴出来:

{
  "partitions": [
    {
      "label": "boot",
      "filesystem_type": "FAT",
      "partition_size_nominal": 60,
      "want_maximised": false,
      "uncompressed_tarball_size": 11,
      "mkfs_options": "-F 32"
    },
    {
      "label": "root",
      "filesystem_type": "ext4",
      "partition_size_nominal": 2700,
      "want_maximised": true,
      "mkfs_options": "-O ^huge_file",
      "uncompressed_tarball_size": 2203
    }
  ]
}

配置文件2.2 partitions.json

可以看到在json文件中属性partitions是一个数组类型,数组每个元素定义的是一个分区信息。首先看label为boot的分区,这是一个FAT格式的分区,被用作操作系统启动分区;然后label为root的是ext4分区,里面存放linux操作系统分区。partition_size_nominal是说分区的大小,want_maximised是说当前分区是否需要被扩展,如果为false,则分区的大小就是partition_size_nominal的指定值,如果为true,则noobs会根据sd卡的大小尽量的分配尽可能多的空间给当前分区。

9. 之前说过,我们从retropie官网上下载下来它的安装文件,将其解压后我们得到一个img文件。按照noobs给出的文档,根据partitions.json中的配置的信息,我们应该生成两个压缩文件,分别为boot.tar.xz和root.tar.gz,文件名实际上对应的是配置文件中的label属性。那么我们现在得到的是img文件,怎样得到这两个文件呢?

如果你是用linux,这个问题很好解决,linux下可以使用mount命令直接把img文件挂载到指定目录上;如果使用windows,那就只能用虚拟机了。好吧,我就是用的windows,打开自己的虚拟机,通过vbox上的共享目录,来访问windows上的这个img文件。

图2.1 共享文件夹设置1

在弹出的界面中新增一个共享设置,我们假设img文件放在e:\sharing下,那么可以做如下设置:

图2.2 新建共享

最后在ubuntu下通过命令mount -t vboxsf sharing /mnt/share来加载这个共享(这里假设/mnt/share目录已经存在了)。在/mnt/share下我们用fdisk命令来查看img文件内部的分区情况:

fdisk -lu RetroPieImage_ver2.3.img

该命令将会输出如下内容:

Disk RetroPieImage_ver2.3.img: 3460 MB, 3460300800 bytes
255 heads, 63 sectors/track, 420 cylinders, total 6758400 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb

                   设备 启动 起点 终点 块数 Id 系统
RetroPieImage_ver2.3.img1 8192 122879 57344 c W95 FAT32 (LBA)
RetroPieImage_ver2.3.img2 122880 6676479 3276800 83 Linux

通过输出可以轻易的发现,img文件中有两个分区,第一个分区从8192扇区开始,第二个分区从122880扇区开始,然后输出信息还指示一个删除是512字节。接下来我们创建两个目录来加载这两个目录:

sudo mkdir /mnt/share/img1
sudo mkdir /mnt/share/img2

接下来是mount命令的使用,mount命令的-o参数可以指定从某一个字节处开始mount,那么加载第一个分区的命令就是如下所示了:

sudo mount -o loop,offset=$((8192*512)) RetroPieImage_ver2.3.img /mnt/share/img1

现在我们进入img1目录,进行打包:

tar -cvpf ../boot.tar .

其中打包的时候我们制定了p参数,这里是告诉tar命令,在tar命令运行时,要保留原文件的权限属性不变。

接着就是使用xz命令就行压缩了:

xz -9 -e boot.tar

最终生成一个boot.tar.xz文件,拷贝到文件夹RetroPie中。同理我们可以再生成一个boot.tar.xz文件。

10. 最后我们就是格式化SD卡了,使用SDFormatter(下载页面地址)将你的SD卡拷贝,然后将制作好的noobs文件全部拷贝到sd卡中,保证recovery.img在sd卡根目录:

图2.3 sd卡根目录

至此一个自定义的操作系统已经成功制作完成,将sd卡插入树莓派就可以安装了。

时间: 2024-10-12 18:55:21

NOOBS安装自定义系统的相关文章

如何安装Linux系统

写在最前面,本人新手,刚接触Linux系统,所做的操作以文本的形式记录下来.视频我看的是老段讲的鸟哥的Linux私房菜.后续陆续会写其他的,算是看过的视频然后做个总结吧.第一次写就从如何安装Linux系统开始吧. 前面设置如何从光盘引导启动就不啰嗦了,大家都会,我就从引导开始界面写吧. 1.电脑引导从光盘启动进入如下界面.默认光标是选择在第一项的,我们就选泽这一项然后回车就可以了. 2.回车以后过1分钟左右会出现如下界面,这是询问我们是否要检查镜像的完整性,如果想检查就选择OK然后回车,这个过程

zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警

zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警 监控端配置:(192.168.4.5) 1基础环境:(实验环境可以关闭防火墙,但生产环境不能关闭,否则不安全,要设置相应规则) [[email protected]桌面]# /etc/init.d/iptables stop [[email protected]桌面]# setenforce 0 2搭建lamp平台,(它运行在lamp平台上) [[email protected]桌面]# yum -y install htt

Linux之最最最最基础(包括在虚拟机中安装linux系统)

这里是以CentOS 6.5  64bit为例(学习用这个,Kali神马的有兴趣自己研究(这个系统是玩渗透用的)) 一 ---->配置Vmware Workstation     自定义--选择兼容版本--选择安装方法(选择稍后安装)--选择系统类型(linux-centos 64-bit)--设置虚拟机的名称和安装位置     --设置CPU数和线程数--设置虚拟机的内存大小--设置网络类型(桥接网络)--设置IO模型--设置磁盘类型--设置磁盘接口--设置磁盘空间大小--修改虚拟机的磁盘名称

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

安装Linux系统及合理划分文件系统

安装Linux系统及合理划分文件系统 (本文以centos 为例) Linux 6 (centos 6.x) 选择安装系统(install systemwith basic video driver)这个选项,第一个选项(install or upgrade an existing system)为安装和更新centos系统,第三个选项为(Rescueinstalled system)为系统修复模式,Boot from local drive(退出安装从硬盘启动),Memory test (服务

Linux系统简介 、 安装Linux系统 、 RHEL6基本操作

Linux系统简介 安装Linux操作系统 RHEL6基本操作 ################################################# 一.Linux系统简介 1. Linux是一类操作系统 计算机系统=硬件+软件 |--> 软件包括:操作系统.各种应用 Linux操作系统=内核程序+外围程序 2. 常见的三大类操作系统 Unix系列      --> 1970年01月01日诞生,FreeBSD.贝尔实验室.IBM.惠普.Oracle等公司 Windows系列   

使用VMware10虚拟机安装Linux系统(能力工场)

作为IT从业人员,我们经常使用到Linux系统,但是实际开发过程我们通常在Windows平台操作,为了满足工作需要,这个时候我们通常在windows平台安装虚拟机,并在其上建立linux系统,这样就极大的便捷了我们的开发使用.本文简要的介绍虚拟机中如何配置安装Linux系统. 使用的系统及程序 VMware10 RedHat Linux 6.0 Windows操作系统 给大家填个下载地址吧 小马哥的技术分享 413939157(上面两个软件的下载链接,请去群里索取,这里不共开了) 下面的图片如果

无人值守自动化安装linux系统

linux自动安装系统工作过程介绍: PXE client 主要和3个不同类型的服务器交互并获取到相关信息,最后才能够自动安装系统. 第一步 PXE Client 与 DHCP Server 如果是物理机,将计算器在BIOS设置中以PXE方式启动.此时计算机会在网络中发送一个广播请求,请求通过DHCP服务器分配一个IP地址等相关信息.DHCP服务器收到客户端的请求并且验证后,它会返回给客户端请求,将IP地址.tftp服务器信息.以及一些配置文件信息告诉客户端以便让客户端继续操作. 第二步 PXE

VMware12版虚拟机怎么安装win7系统(详细教程

转自:http://jingyan.baidu.com/article/cd4c29791fcf1b756e6e6034.html VMware12版虚拟机怎么安装win7系统(详细教程) 现 在很多人都会在虚拟机上体验不同的系统,可是很多时候我们并不能非常顺利的安装好系统,这中间经常会出现很多差错,导致我们安装不上,比如在虚拟机上安装 win7系统,很多人发现安装的时候总是会跳到工具箱中去,导致根本不能安装,小编在这里将详细的新版虚拟机安装win7系统的方法分享给大家,希望能够 帮助到各位有需