該片文章將完整記錄一個Debian的最小檔案系統的生成,以及自定義配置WIFI元件、網路元件和交換分割槽配置
本文章參考:
https://whycan.com/t_4236.html
http://www.leux.cn/doc/debootstrap.html(該網站在備案中,可能暫時無法檢視了)
帖子整理完成。
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 LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose sudo LC_ALL=C LANGUAGE=C LANG=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 usbutils 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 #退出chroot rm rootfs/usr/bin/qemu-arm-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分割槽