Linux中國

在樹莓派上創建一個最小化的伺服器

最近,我的 樹莓派 上的 microSD 儲存卡不工作了。它已經作為伺服器持續使用將近兩年了,這為我提供了一個開始探索和修正問題的好機會。在初始化安裝完成以後,它開始出現一些磁碟方面的問題,並且官方的樹莓派操作系統發布了一個有重大意義的更新(並從 Raspbian 更名為 樹莓派操作系統 Raspberr Pi OS )。所以我買了一個新的儲存卡並開始重裝。

儘管樹莓派 3B 不是最新的硬體,但對於運行多樣化服務的最小化的伺服器還是足夠的。我認為我之前的安裝使用了完整的安裝鏡像,包括了圖形用戶界面和許多其他的軟體包是沒有必要的。

這個詳細步驟的指南展示了我怎樣用最小化設置來充分利用我珍貴的樹莓派系統資源。

開始

首先,要為樹莓派創建一個新的系統驅動器。這需要兩樣東西:系統鏡像文件和一張 microSD 儲存卡。

下載樹莓派系統鏡像文件

雖然有好幾種操作系統可供選擇,但我堅持選擇樹莓派官方支持的系統。

第一步是從 樹莓派操作系統 官方網站上下載最新的系統鏡像文件到計算機,然後後寫入儲存卡。他們提供了三個不同的鏡像,我選擇了精簡版。它是最小化的操作系統,只包含基本系統必要的文件,所以它佔用最少的磁碟空間和系統內存。(當我下載系統的時候,發布日期是 2020 年 8 月 20 日,但是它現在肯定已經更新了。我覺得不會有什麼巨大不同,但是我建議讀一下發行說明。)

將樹莓派系統鏡像寫到儲存卡

第二步是寫下載的系統鏡像到儲存卡。我的卡之前用過,當我把它插入我的 Linux 桌面計算機之後,它自動載入了兩個存在的分區。在我卸載這兩個分區前,我不能寫入鏡像。

要這樣做,我必須得用下面的 lsblk 命令來確定它們的路徑,經確定,該設備路徑為 /dev/mmcblk0

# lsblk -p

我用 umount 命令卸載了這兩個分區:

# umount /dev/mmcblk0p2
# umount /dev/mmcblk0p1

一旦分區被卸載,就可以將鏡像文件寫入到儲存卡了。儘管有許多圖形化的寫入工具,我還是習慣是用古老的 dd 命令:

# dd bs=4M if=/home/alan/Downloads/raspios/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0 status=progress conv=fsync

啟動樹莓派

你只需要一個顯示器、鍵盤、電源適配器來使用樹莓派。我還有一個乙太網網線用於網路連接,相比無線網路,我更喜歡通過網線來連接一個專用的伺服器。

插入儲存卡並打開樹莓派的電源。一旦成功啟動,用默認的預設密碼來進行登錄:用戶名 pi,密碼raspberry

系統設置

按照以下步驟儘可能最小化設置磁碟空間、內存使用等。我建議儘可能的花時間研究每個配置,使之盡量正確。通常有幾種應用配置的方法,有些配置文件和選項可能會被丟棄,所以要查看產品文檔確保你沒有應用過時的配置。

運行 raspi-config

樹莓派系統的主設置程序叫做 raspi-config。登錄以後立即運行它:

# raspi-config

![Raspberry Pi config main window](/data/attachment/album/202203/28/161230t2l8k1h7bx1xbflh.png "Raspberry Pi config main window")

它出現了一個擴展根文件系統的選項,可以利用儲存卡上所有可利用的空間。選擇這個選項之後,重啟並重新登錄。

df 命令來驗證儲存卡的總容量是否被完全使用:

# df -h

如果你需要設置其他選項,請再次運行 raspi-config。它們中的一些選項可以根據你的偏好和配置進行變化。仔細檢查所有這些選項,確定沒有任何遺漏。為了獲得最佳性能,我建議做以下調整。(我跳過了一些我們沒有做任何變化的選項。)

  • 系統選項 System options :在此你可以設置主機名,最好使用完全限定的域名(FQDN)。你也能在這裡更改你的密碼,這始終是強烈建議的。
  • 介面選項 Interface options :開啟 SSH 服務。
  • 性能選項 Performance options :將 GPU 內存減少到最低值(16MB)。
  • 本地化選項 Localization options :選擇你的時區、位置、鍵盤類型。
  • 高級選項 Advanced options :這個選項包括擴展根文件系統的選項。如果你在上面沒擴展,一定要在這裡做。這樣你可以訪問儲存卡上的所有可用空間。
  • 更新 Update :進入更新選項會立即檢查 raspi-config 工具是否有更新。如果更新可用,它將被下載並應用,raspi-config 將在幾秒鐘後重啟。

一旦你在 raspi-config 中完成這些配置,選擇「 完成 Finish 」退出該工具。

手動配置

我還建議幾個其他更改,它們全都要求編輯某種配置文件來手動更改設置。

設置靜態 IP 地址

一般來說,最好用靜態 IP 地址設置伺服器。通過 ip 命令來驗證網路介面,並設置 IP 地址和你的預設網關(路由器)和域名服務(DNS)地址:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:48:3f:46 brd ff:ff:ff:ff:ff:ff

你還需要知道你的預設網關和一個及以上的 DNS 伺服器地址。將這些信息添加到 /etc/dhcpcd.conf 配置文件中(我強烈建議更改之前對這個文件做一個備份):

# cd /etc
# cp -a dhcpcd.conf dhcpcd.conf.original

按照以下來編輯文件:

# vi dhcpcd.conf

# static IP configuration:
interface eth0
static ip_address=192.168.1.5/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.3 192.168.1.4
關閉 IPv6 協議

除非你有特別需要使用 IPv6,否則你可能傾向于禁用它。為此,你可以創建兩個新文件,其中包括一個單行指令,指示 Linux 內核不要使用 IPv6。

首先,創建 /etc/sysctl.d/disable-ipv6.conf 文件,其中包含一行指令:

# cd /etc/sysctl.d
# echo "net.ipv6.conf.all.disable_ipv6 = 1" > disable-ipv6.conf

然後創建 /etc/modprobe.d/blacklist-ipv6.conf 文件包含一行指令:

# cd /etc/modprobe.d
# echo "blacklist ipv6" > blacklist-ipv6.conf
關閉 Wi-Fi、藍牙和音頻

我的伺服器的具體用途並不需要藍牙和音頻,同時,它用乙太網連接,並不使用無線(Wi-Fi)。除非你計劃用它們,否則按照以下步驟來關閉它們。

/boot/config.txt 這個文件做以下更改(再次強調,我建議為這個文件做個備份):

# cd /boot
# cp -a config.txt config.txt.original

加入以下兩個指令到文件底部來禁用藍牙和 Wi-Fi:

  • dtoverlay=disable-bt
  • dtoverlay=disable-wifi

這些 echo 命令就可以完成:

# cd /boot
# echo "dtoverlay=disable-bt" >> config.txt
# echo "dtoverlay=disable-wifi" >> config.txt

要關閉音頻,更改 dtparam=audio 的參數為 off。你可以用一個簡短的命令 sed 來完成:

# sed -i &apos;/dtparam=audio/c dtparam=audio=off&apos; config.txt

最後一步是禁用 Wi-Fi 服務,用 systemctl mask 命令來操作:

systemctl mask wpa_supplicant.service

如果你不需要其他服務的話,也可以禁用它們:

  • 禁用數據機服務:systemctl disable hciuart
  • 禁用 Avahi 守護進程:systemctl disable avahi-daemon.service

最後一步

檢查你的內存使用量:

# free -h

我震驚了:我的系統只用了 30MB 的內存。

創建個人賬戶:建議為登錄這台伺服器的個人創建用戶賬戶。你能分配他們到 sudo 組允許他們運行管理命令。舉個例子,創建一個用戶名為 George 的一個賬戶。

# adduser george
# usermod -a -G adm,sudo,users george 

進行更新:這是一個重要的步驟。應用更新來獲取樹莓派操作系統的最新修復。

# apt update
# apt full-upgrade

重啟:重啟你的新伺服器是一個好主意:

# systemctl reboot`

安裝 Cockpit:你可以在樹莓派系統上安裝著名的 Linux Web 控制台 Cockpit,它提供了一個基於 HTML 界面來遠程管理和監控你的伺服器。我最近寫了一篇 Cockpit 入門 的文章。用這個命令來安裝它

# apt install cockpit

現在我的樹莓派伺服器已經準備好託管伺服器了,我能用它來做 網頁伺服器VPN 伺服器Minetest 等遊戲伺服器,或者就像我做的基於 Pi-Hole 的廣告屏蔽器

保持舊硬體的活力

不論你有什麼硬體,仔細地精簡併控制你的操作系統和軟體包,可以使你的系統資源使用量保持在低水平,以便你獲得最大收益。這還可以通過減少試圖利用漏洞的潛在惡意行為者可用的服務和軟體包數量,提高了安全性。

因此,在你丟棄舊硬體之前,考慮一下能夠繼續使用的各種可能性。

via: https://opensource.com/article/21/1/minimal-server-raspberry-pi

作者:Alan Formy-Duval 選題:lujun9972 譯者:hwlife 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國