小白自制Linux開發板 五. Debian檔案系統製作,以及WIFI配置、交換分割槽配置

淡墨青雲 發表於 2021-10-19
Linux Debian

該片文章將完整記錄一個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

修改檔案內容
小白自制Linux開發板 五. Debian檔案系統製作,以及WIFI配置、交換分割槽配置

儲存退出

修改主機名,否則將會以當前編譯的系統的主機名進行設定(如:筆者為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

 

  示例如下

[email protected]:~# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
[email protected]-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地址

[email protected]:~# 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
[email protected]-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

 小白自制Linux開發板 五. Debian檔案系統製作,以及WIFI配置、交換分割槽配置

使用我們自定義的pi賬戶登入

小白自制Linux開發板 五. Debian檔案系統製作,以及WIFI配置、交換分割槽配置

 

 使用命令檢視Swap分割槽

小白自制Linux開發板 五. Debian檔案系統製作,以及WIFI配置、交換分割槽配置