admin 管理员组

文章数量: 887021

一、Debian系统命名规则

Debian 10(buster) — 当前的稳定版(stable)
Debian 9(stretch) — 旧的稳定版(oldstable)
Debian 8(jessie) — 更旧的稳定版(oldoldstable)
Debian 7(wheezy) — 被淘汰的稳定版
Debian 6.0(squeeze) — 被淘汰的稳定版
Debian GNU/Linux 5.0(lenny) — 被淘汰的稳定版
Debian GNU/Linux 4.0(etch) — 被淘汰的稳定版
Debian GNU/Linux 3.1(sarge) — 被淘汰的稳定版
Debian GNU/Linux 3.0(woody) — 被淘汰的稳定版
Debian GNU/Linux 2.2(potato) — 被淘汰的稳定版
Debian GNU/Linux 2.1(slink) — 被淘汰的稳定版
Debian GNU/Linux 2.0(hamm) — 被淘汰的稳定版

本文将介绍Debian8——jessie系统镜像制作。Linux主机环境为ubuntu16.04。
建议使用清华大学开源镜像:清华大学开源镜像站

二、制作流程
  • 1.新建image文件
  • dd指令详解
mkdir -p debian/jessie #jessie文件夹作为挂载点
cd jessie
dd if=/dev/zero of=jessie.img bs=1M count=0 seek=4000 #生成一个4000M的空文件
mkfs.ext4 jessie.img #文件化成ext4文件系统
mount jessie.img jessie #将该文件系统挂载到jessie文件夹
  • 2.建立最小文件系统
deboottrap是一种工具,它将 Debian 基本系统安装到另一个已安装的系统的子目录中。它不需要安装CD,只需访问Debian存储库。
--arch:指定架构  
--verbose:输出下载信息
--variant:指定引导脚本集 minbase只包含必要的包和apt
--foreign:如果目标体系结构与主机体系结构不匹配仅执行引导的初始解压缩阶段,后续的引导放在/debootstrap/debootstrap 
第一个jessie:指定文件系统版本 jessie代表debian8
第二个jessie:指定文件系统输出目录 可以不事先创建

执行命令如下:

debootstrap --verbose --arch armhf --variant=minbase --foreign jessie jessie https://mirrors.tuna.tsinghua.edu/debian/ 
  • 3.二级引导
qemu-arm-static #模拟运行ARM环境应用程序(文件系统)
chroot #把根目录换成指定的目的目录
--second-stage #完成引导过程。通常不需要其他参数。

执行命令如下:

cp /usr/bin/qemu-arm-static jessie/usr/bin #拷贝qemu-arm-static 到刚构建的基本系统中 否则下一步chroot会失败 
chroot jessie/ #进入文件系统 
/debootstrap/debootstrap --second-stage #执行二级引导程序,完成引导后会提示“Base system installed successfully. ”
  • 4.完善系统

  • 新建一个普通用户、增加root用户密码

adduser debian
passwd root
  • 如果有需要可以修改下主机名
vi /etc/hostname
  • 更换国内源:
vi  /etc/apt/sources.list

替换成如下内容(树莓派armhf架构源):

deb http://mirrors.tuna.tsinghua.edu/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu/raspbian/raspbian/ jessie main non-free contrib
  • 安装vim、ifconfig、ping等工具
apt install vim 
apt-get install net-tools #ifconfig
apt install iputils-ping #ping 

如果需要作其他修改,可以在这里继续操作。否则,输入exit退出ARM环境,然后执行umount jessie取消挂载文件系统。

  • 5.文件系统检查与调整
e2fsck #用于检查使用 Linux ext2 档案系统的 partition 是否正常工作。 e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。
语法格式: e2fsck [参数]
-b	设定存放 superblock 的位置
-B	设定单位 block 的大小
-c	检查该partition 是否有坏轨
-C  file 将检查的结果存到 file 中以便查看
-d	列印 e2fsck 的 debug 结果
-f	强制检查
-F	在开始检查前,将device 的 buffer cache 清空,避免有错误发生
-l  bad_blocks_file	将有坏轨的block资料加到 bad_blocks_file 里面
-L  bad_blocks_file	设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
-n	将档案系统以[唯读]方式开启
-p	对 partition 做检查,若有问题便自动修复
-v 	详细显示模式
-V	显示出目前 e2fsck 的版本
-y	预先设定所有检查时的问题均回答[]
resize2fs #用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。
语法格式:resize2fs [参数] [文件]
-d	打开调试特性
-p	打印已完成的百分比进度条
-f	强制执行调整大小操作,覆盖掉安全检查操作
-F	开始执行调整大小前,刷新文件系统设备的缓冲区
-M  将文件系统缩小到最小值

执行命令如下:

e2fsck -p -f jessie.img
resize2fs -M jessie.img

至此一个基本的debian8文件系统就制作好了,可以烧到板子中测试了!

三、备注

进入开发板后,发现根分区太小,可以用resize2fs拓展分区大小:
dmesg |grep mount 查看当前文件系统挂在哪个分区
[ 4.600553] EXT4-fs (mmcblk2p8): mounted filesystem with ordered data mode. Opts: (null)

resize2fs /dev/mmcblk2p8 #拓展分区大小

本文标签: 开发板 系统