全志科技
直播中

辛太励

7年用户 1128经验值
擅长:20153
私信 关注
[问答]

如何去制作一个Debian的最小文件系统呢

如何去制作一个Debian的最小文件系统呢?有哪些制作步骤?

回帖(1)

李悛

2021-12-29 14:51:43

  • 该片文章将完整记录一个Debian的最小文件系统的生成,以及自定义配置WIFI组件、网络组件和交换分区配置

    1. 制作Debian系统
    构建debian文件系统,作为记录,最小rootfs在180MB左右。
    1.1 配置构建环境
    安装构建文件系统的工具,一个是用来chroot,一个是用来构建文件系统
    sudo apt install qemu-user-static -y
  • sudo apt install debootstrap -y
  • mkdir rootfs
  • 构建文件系统之前,你要知道你想要构建哪个版本的文件系统,
    我从 https://www.debian.org/mirror/list.zh-cn.html 这里,
    选择了我访问速度快的源,并且该源有armel。
    armhf (支持硬件浮点)
    armel (软浮点)
    我看华为源挺快的,就用这个了mirrors.huaweicloud.com
    然后就是debian的版本,我尝试一下最新的,buster
    sudo debootstrap --foreign --verbose --arch=armel  buster rootfs http://mirrors.huaweicloud.com/debian/
  • 构建完成之后,需要chroot进去修改密码等配置




  • cd rootfs
  • sudo mount --bind /dev dev/
  • sudo mount --bind /sys sys/
  • sudo mount --bind /proc proc/
  • sudo mount --bind /dev/pts dev/pts/
  • cd ..
  • sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
  • sudo chmod +x rootfs/usr/bin/qemu-arm-static
  • sudo LC_ALL=C LANGUAGE=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
  • sudo LC_ALL=C LANGUAGE=C chroot rootfs


  • 最后一条命令chroot完成,
    此时可以先apt-get等给你的文件系统安装你需要的软件包
    为了提高下载速度,我们首先修改源
    vi /etc/apt/sources.list
  • 改为(注意要换其他源用http方式可以访问的,要不然还得处理https的内容):
    deb http://mirrors.huaweicloud.com/debian buster main
  • 改完以后执行:
    apt-get update
  • 使源生效
    安装网络相关的库
    apt-get install wpasupplicant #安装WIFI配置相关的组件
  • apt-get install net-tools     #安装网络基础组件、如使用ifconfig等
  • apt-get install udhcpc        #当wifi连接成功后,需要用这个组件去获取IP地址
  • 其他组件
    apt-get install wireless-tools
  • apt install sudo vim openssh-server htop
  • apt install pciutils u***utils acpi
  • 1.2 配置账号
    修改root登录密码的方式如下
    passwd root
  • 添加用户
    groupadd <用户组>
  • useradd -m -g <用户组> -s /bin/bash <用户名>
  • passwd <用户名>
  • 1.3 新增账号sudo配置
    对于出现
    <用户名> is not in the sudoers file.  This incident will be reported.
  • 切换到超级用户:
    $ su
  • 打开/etc/sudoers文件:
    # vi /etc/sudoers
  • 修改文件内容

    保存退出
    修改主机名,否则将会以当前编译的系统的主机名进行设置(如:笔者为Ubuntu,相当的尴尬)
    HOSTNAME=<你的主机名>
  • echo $HOSTNAME > /etc/hostname
  • echo $HOSTNAME > /proc/sys/kernel/hostname
  • sed -i '/localhost/s/$/t'"$HOSTNAME"'/g' /etc/hosts
  • 1.4 配置时区
    修改系统默认时区
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 1.5 配置SSH
    如果要使用SSH服务,并且允许SSH客户端以root方式登录需要进行一下设置。
    vi rootfs/etc/ssh/sshd_config
  • 添加
    PermitRootLogin yes
  • 1.6 rootfs打包
    当所有的内容制作完成,就可以清理缓存,打包之后就可以替换你的文件系统了
    apt-cache clean #删除安装包
  • exit  #退出chrootrm rootfs/usr/bin/qemu-a
  • rm-static
  • 卸载刚在挂载的文件夹。



  • cd rootfs
  • sudo umount   dev/pts/
  • sudo umount   dev/
  • sudo umount   sys/
  • sudo umount   proc/
  • sudo umount   dev/pts/


  • 打包文件。


# cd rootfs  #进到文件系统目录,如果已经在该文件夹下,可以忽略
tar cvf ../rootfs.tar .    #要注意那个.  代表当前目录


生成的rootfs.tar任意解压到文件系统即可
2. 使用wpa_supplicant连接wifi
创建配置文件
vi /etc/wpa_supplicant.conf
输入内容:



network={
  ssid="我的热点"
  psk="我的密码"
}


然后执行命令


wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf




示例如下


root@dika-pc:~# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
root@dika-pc:~# [  444.817608] wlan0: authenticate with e4:67:1e:02:33:c0
[  444.843208] wlan0: send auth to e4:67:1e:02:33:c0 (try 1/3)
[  444.900867] wlan0: authenticated
[  444.935561] wlan0: associate with e4:67:1e:02:33:c0 (try 1/3)
[  444.986874] wlan0: RX AssocResp from e4:67:1e:02:33:c0 (capab=0x411 status=0 aid=4)
[  445.033483] wlan0: associated
[  446.047125] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
^C


执行dhcp命名,获取IP地址


root@dika-pc:~# udhcpc -i wlan0
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 172.16.1.106
udhcpc: lease of 172.16.1.106 obtained, lease time 43200
root@dika-pc:~# ping www.dika.ren
PING www.dika.ren (149.129.80.46) 56(84) bytes of data.
64 bytes from 149.129.80.46: icmp_seq=3 ttl=45 time=217 ms
64 bytes from 149.129.80.46: icmp_seq=4 ttl=45 time=417 ms
64 bytes from 149.129.80.46: icmp_seq=5 ttl=45 time=102 ms
64 bytes from 149.129.80.46: icmp_seq=6 ttl=45 time=108 ms
^C
--- www.dika.ren ping statistics ---
6 packets transmitted, 4 received, 33.3333% packet loss, time 346ms
rtt min/avg/max/mdev = 102.009/211.020/417.367/127.586 ms

3. 增加swap分区
在使用一些软件的过程中,会遇到系统崩溃,尤其是使用 apt-get install 的时候,所以需要加入swap分区,可以简单理解为虚拟内存。
使用
free
查看当前swap大小,
使用如下命令创建你想要添加swap分区的大小
dd if=/dev/zero of=/swap1 bs=1M count=512  #改成你要设置的SWAP大小,512就是512MB
设置swap分区文件
mkswap /swap1
激活swap分区
swapon /swap1
此时使用free命令就能看到创建好的swap分区,但这只是临时性的, 重启会失效,需要配置一下,下次开机时候要开swap
vi /etc/fstab
操作,在最后一行添加
/swap1 swap swap defaults 0 0展示
开始进入Debian

使用我们自定义的pi账户登录

使用命令查看Swap分区
举报

更多回帖

发帖
×
20
完善资料,
赚取积分