偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

修改磁盤鏡像來(lái)創(chuàng)建基于樹(shù)莓派的家庭實(shí)驗(yàn)室

系統(tǒng) Linux
這篇文章闡述如何修改樹(shù)莓派或其它的單板機(jī)的磁盤鏡像,預(yù)配置主機(jī)的 SSH,并禁用首次啟動(dòng)時(shí)強(qiáng)制競(jìng)選交互配置的服務(wù)。這是一個(gè)讓你的設(shè)備“即啟動(dòng),即運(yùn)行”的極好方法,類似于云端實(shí)例。之后,你可以使用自動(dòng)化的流程通過(guò) SSH 連接來(lái)進(jìn)行更專業(yè)和更深入的配置。

[[328837]]

使用樹(shù)莓派或其它單板機(jī)創(chuàng)建一個(gè)“家庭私有云”。

構(gòu)建一個(gè)家庭實(shí)驗(yàn)室可以是一個(gè)有趣的方式,可以讓你學(xué)習(xí)的新概念和實(shí)驗(yàn)新技術(shù)時(shí)還能自?shī)首詷?lè)。得益于以 樹(shù)莓派 為首的單板計(jì)算機(jī)(SBC)的流行,在舒適的家里就可以輕松構(gòu)建一個(gè)多計(jì)算機(jī)實(shí)驗(yàn)室。比起試圖在主流的云服務(wù)商建立的相同配置,創(chuàng)建一個(gè)“家庭私有云”以花更少的錢來(lái)體驗(yàn)到云原生技術(shù),也是一個(gè)極好的方法。

這篇文章闡述如何修改樹(shù)莓派或其它的單板機(jī)的磁盤鏡像,預(yù)配置主機(jī)的 SSH,并禁用首次啟動(dòng)時(shí)強(qiáng)制競(jìng)選交互配置的服務(wù)。這是一個(gè)讓你的設(shè)備“即啟動(dòng),即運(yùn)行”的極好方法,類似于云端實(shí)例。之后,你可以使用自動(dòng)化的流程通過(guò) SSH 連接來(lái)進(jìn)行更專業(yè)和更深入的配置。

此外, 當(dāng)向你的實(shí)驗(yàn)室添加更多的樹(shù)莓派時(shí),修改磁盤鏡像可以來(lái)讓你只需要將該鏡像寫到一個(gè) SD 卡、放入樹(shù)莓派中就可以了!

 

[[328838]]

Multiple Raspberry Pi computers, a switch, and a power bank

解壓縮和掛載鏡像

對(duì)于這個(gè)項(xiàng)目,你需要修改一個(gè)服務(wù)器磁盤鏡像。在測(cè)試期間,我使用 Fedora Server 31 ARM。在你下載該磁盤鏡像并驗(yàn)證其校驗(yàn)和之后,你需要將其解壓縮并掛載其到宿主機(jī)的文件系統(tǒng)的某個(gè)位置上,以便你可以根據(jù)需要修改它。

你可以使用 xz 命令通過(guò) --decompress 參數(shù)來(lái)解壓縮 Fedora 服務(wù)器鏡像:

  1. xz --decompress Fedora-Server-armhfp-X-y.z-sda.raw.xz

這會(huì)留下一個(gè)解壓縮后的原始磁盤鏡像(它會(huì)自動(dòng)地替換 .xz 壓縮文件)。這個(gè)原始磁盤鏡像就像它聽(tīng)起來(lái)的那樣:一個(gè)包含格式化后安裝好的磁盤上的所有數(shù)據(jù)的文件。這包含分區(qū)信息、啟動(dòng)分區(qū)、root 分區(qū)以及其它分區(qū)。你需要掛載你打算在其中進(jìn)行修改的分區(qū),但是要做到這一點(diǎn),你需要知道磁盤鏡像中的分區(qū)起始位置和扇區(qū)大小,這樣你才可以掛載該文件正確的扇區(qū)。

幸運(yùn)的是,你可以在一個(gè)磁盤鏡像上使用 fdisk 命令,就像在實(shí)際磁盤上使用一樣容易。使用 --list-l 參數(shù)來(lái)查看分區(qū)的列表和其信息:

  1. # 使用 fdisk 來(lái)列出原始鏡像文件的分區(qū):
  2. $ fdisk -l Fedora-Server-armhfp-31-1.9-sda.raw
  3. Disk Fedora-Server-armhfp-X-y.z-sda.raw: 3.2 GiB, 3242196992 bytes, 6332416 sectors
  4. Units: sectors of 1 * 512 = 512 bytes
  5. Sector size (logical/physical): 512 bytes / 512 bytes
  6. I/O size (minimum/optimal): 512 bytes / 512 bytes
  7. Disklabel type: dos
  8. Disk identifier: 0xdaad9f57
  9.  
  10. Device                               Boot   Start     End Sectors  Size Id Type
  11. Fedora-Server-armhfp-X-y.z-sda.raw1         8192  163839  155648   76M  c W95 F
  12. Fedora-Server-armhfp-X-y.z-sda.raw2 *     163840 1163263  999424  488M 83 Linux
  13. Fedora-Server-armhfp-X-y.z-sda.raw3      1163264 6047743 4884480  2.3G 83 Linux

你需要的所有信息都可在上面的輸出中獲得。第 3 行表示扇區(qū)大?。òㄟ壿嫼臀锢淼模?12 字節(jié) / 512 字節(jié)。

設(shè)備列表顯示的是原始磁盤鏡像中的分區(qū)。第一個(gè),Fedora-Server-armhfp-X-y.z-sda.raw1 毫無(wú)疑問(wèn)是引導(dǎo)程序分區(qū),因?yàn)樗堑谝粋€(gè),很?。▋H僅 76MB),而且類型被標(biāo)識(shí)為 c,即 W95 FAT32(LBA),這是一個(gè)從 SD 卡啟動(dòng)的 FAT32 分區(qū)。

第二個(gè)分區(qū)也不是非常大,只有 488MB。這個(gè)分區(qū)是一個(gè) Linux 原生類型分區(qū)(Id 83),它可能是包含內(nèi)核和 initramfs 的 Linux 啟動(dòng)分區(qū)。

第三個(gè)分區(qū)可能是你需要的東西:它有 2.3GB 大小,所以在它其中應(yīng)該有發(fā)行版的主要部分,并且它是一個(gè) Linux 原生分區(qū)類型,這也是在預(yù)料之中的。這個(gè)分區(qū)應(yīng)該包含了你需要修改的分區(qū)和數(shù)據(jù)。

第三個(gè)分區(qū)從扇區(qū) 1163264 開(kāi)始(在 fdisk 的輸出中被顯示為 Start 列),所以你的掛載偏移量是 595591168,計(jì)算方法是將扇區(qū)大?。?12)乘以起始扇區(qū)(1163264)(即 512 * 1163264)。這意味著你需要以偏移量 595591168 掛載該文件,才能掛載到正確位置。

裝備了這些信息,現(xiàn)在你可以將第三個(gè)分區(qū)掛載到你的家目錄中了:

  1. $ mkdir ~/mnt
  2. $ sudo mount -o loop,offset=595591168 Fedora-Server-armhfp-X-y.z-sda.raw ~/mnt
  3. $ ls ~/mnt

直接在磁盤鏡像中作業(yè)

在磁盤鏡像被解壓縮和被掛載到宿主機(jī)上的一個(gè)位置后,就可以修改鏡像以符合你的需求。在我看來(lái),對(duì)鏡像進(jìn)行更改的最簡(jiǎn)單的方法是使用 chroot 來(lái)將你會(huì)話的工作根目錄更改為掛載鏡像的工作根目錄。不過(guò),有點(diǎn)棘手。

在你改變了根目錄后,你的會(huì)話將使用新的根目錄下的二進(jìn)制文件。除非你是在一個(gè) ARM 系統(tǒng)做這些所有的操作,否則解壓縮后的磁盤鏡像的架構(gòu)將與你正在使用的宿主機(jī)系統(tǒng)不同。即使在 chroot 環(huán)境中,宿主機(jī)系統(tǒng)也無(wú)法使用一個(gè)不同架構(gòu)的二進(jìn)制文件。至少,不能在本機(jī)使用。

幸運(yùn)的是,這里有一個(gè)解決方案:qemu-user-static。來(lái)自 Debian Wiki 的說(shuō)明:

“[qemu-user-static] 提供了用戶模式的仿真二進(jìn)制文件,是靜態(tài)構(gòu)建的。在這個(gè)模式中,QEMU 可以在一個(gè) CPU 上啟動(dòng)為另一個(gè) CPU 編譯的 Linux 進(jìn)程 …… 如果安裝了 binfmt-support 軟件包,qemu-user-static 軟件包會(huì)注冊(cè)提供的仿真器可以處理的二進(jìn)制文件格式,以便其能夠直接運(yùn)行其他架構(gòu)的二進(jìn)制文件。”

這正是你需要在 chroot 環(huán)境中非本地架構(gòu)中工作所需的。如果宿主機(jī)系統(tǒng)是 Fedora,使用 DNF 來(lái)安裝 qemu-user-static 軟件包,并重新啟動(dòng) systemd-binfmt.service

  1. # 使用 DNF 啟用非本地的 arch chroot 環(huán)境,添加新的二進(jìn)制文件格式信息
  2. # 輸出鏡像了精簡(jiǎn)
  3. $ dnf install qemu-user-static
  4. $ systemctl restart systemd-binfmt.service

使用這種方法,你一個(gè)能夠更改根目錄到掛載的磁盤鏡像,運(yùn)行 uname 命令來(lái)驗(yàn)證一切都在正常:

  1. sudo chroot ~/mnt/ /usr/bin/uname -a -r
  2. Linux marvin 5.5.16-200.fc31.x86_64 #1 SMP Wed Apr 8 16:43:33 UTC 2020 armv7l armv7l armv7l GNU/Linux

在 chroot 環(huán)境中運(yùn)行 uname 將在輸出中顯示 armv7l,這個(gè)原始磁盤鏡像的架構(gòu), 而不是宿主機(jī)的架構(gòu)。一切如預(yù)期,可以繼續(xù)修改鏡像了。

修改磁盤鏡像

現(xiàn)在你可以直接切換到這個(gè)基于 ARM 的磁盤鏡像中,并在該環(huán)境中工作了,你可以對(duì)鏡像自身鏡像修改了。你需要設(shè)置該鏡像,以便它能夠啟動(dòng)并可立即訪問(wèn),而不需要在樹(shù)莓派上做任何額外的設(shè)置。為此,你需要安裝并啟用 sshd(OpenSSH 守護(hù)進(jìn)程),并為 SSH 訪問(wèn)添加授權(quán)密碼。

為了使其表現(xiàn)得更像一個(gè)云環(huán)境,實(shí)現(xiàn)在家里建立私有云的夢(mèng)想,添加一個(gè)本地用戶,給予該用戶 sudo 權(quán)限,并(為了像云端的重度用戶一樣)允許該用戶無(wú)需密碼就可以使用 sudo。

所以,你將做的事情是:

  • 安裝并啟用 SSHD(SSHD 已經(jīng)在 Fedora ARM 鏡像中安裝并啟用,但是你可能需要為你發(fā)行版手動(dòng)執(zhí)行這些工作)
  • 設(shè)置一個(gè)本地用戶
  • 允許本地用戶來(lái)使用 sudo(無(wú)需密碼,可選)
  • 添加授權(quán)密鑰
  • 允許 root 使用授權(quán)密碼鏡像 SSH(可選)

我使用 GitHub 功能,它允許你上傳你的 SSH 公鑰,并在 https://github.com/.keys 處可訪問(wèn)。我發(fā)現(xiàn)這是一種很方便的分發(fā)公鑰的方法,不過(guò)我生性多疑,我總是檢查下載的密鑰是否與我預(yù)期的匹配。如果你不想使用這種方法,你可以從你宿主機(jī)中復(fù)制你公鑰到 chroot 環(huán)境中,或者你可以將公鑰托管在你控制的 Web 服務(wù)器上以便使用相同的工作流。

要開(kāi)始修改磁盤鏡像,再次切換根目錄到掛載的磁盤鏡像中,這次啟動(dòng)一個(gè) shell,以便可以運(yùn)行多個(gè)命令:

  1. # 為了簡(jiǎn)潔起見(jiàn),省略了這些命令的輸出(如果有的話)
  2. $ sudo chroot ~/mnt /bin/bash
  3.  
  4. # 安裝 openssh-server ,并啟用它 (在 Fedora 上已經(jīng)完成)
  5. $ dnf install -y openssh-server
  6. $ systemctl enable sshd.service
  7.  
  8. # 允許 root 使用授權(quán)密碼訪問(wèn) SSH
  9. $ mkdir /root/.ssh
  10.  
  11. # 下載或者另外添加授權(quán)密碼文件,你的公共密碼
  12. # URL 替換為你自己公共密碼的路徑
  13. $ curl <https://github.com/clcollins.keys> -o /root/.ssh/authorized_keys
  14. $ chmod 700 /root/.ssh
  15. $ chmod 600 /root/.ssh/authorized_keys
  16.  
  17. # 添加一個(gè)本地用戶,并放置他們到 wheel 組中
  18. # 將組和用戶更改為您想要的一切
  19. useradd -g chris -G wheel -m -u 1000 chris
  20.  
  21. # 下載并添加你的授權(quán)密碼
  22. # 像你上面所做的那樣更改 home 目錄和URL
  23. mkdir /home/chris/.ssh
  24. curl <https://github.com/clcollins.keys> -o /home/chris/.ssh/authorized_keys
  25. chmod 700 /home/chris/.ssh
  26. chmod 600 /home/chris/.ssh/authorized_keys
  27. chown -R chris.chris /home/chris/.ssh/
  28.  
  29. # 允許 wheel 組( 使用你的本地用戶) 不需要使用密碼來(lái)使用 suso
  30. echo "%wheel ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/91-wheel-nopasswd

這就是樹(shù)莓派或其它單板機(jī)在首次啟動(dòng)時(shí)需要完成設(shè)置 SSH 的全部工作。不過(guò),每個(gè)發(fā)行版都有自己的特點(diǎn)。例如,Raspbian 已經(jīng)包含一個(gè)本地用戶:pi,并且不使用 wheel 組。因此對(duì)于 Raspbian 來(lái)說(shuō),最好使用現(xiàn)有用戶,或者刪除 pi 用戶,并使用另一個(gè)用戶來(lái)替換它。

在 Fedora ARM 的情況下,鏡像會(huì)在首次引導(dǎo)啟動(dòng)時(shí)提示你完成設(shè)置。這會(huì)破壞你在上面所做的修改的目的,尤其是在設(shè)置完成之前,它會(huì)完全阻止啟動(dòng)。你的目標(biāo)是使樹(shù)莓派的功能類似于私有云的基礎(chǔ)設(shè)施的一部分一樣運(yùn)行,而這個(gè)工作流程包括在主機(jī)啟動(dòng)時(shí)通過(guò) SSH 遠(yuǎn)程設(shè)置主機(jī)。 禁用初始化設(shè)置,它由 initial-setup.service 控制:

  1. # 對(duì)多用戶和圖形目標(biāo)禁用 initial-setup.service
  2. unlink /etc/systemd/system/multi-user.target.wants/initial-setup.service
  3. unlink /etc/systemd/system/graphical.target.wants/initial-setup.service

當(dāng)你在 chroot 環(huán)境時(shí),你可以對(duì)你系統(tǒng)做任何你想做的其它更改,或者就放在那里,在第一次啟動(dòng)后,按照云原生的工作流通過(guò) SSH 進(jìn)行配置。

重新壓縮并安裝修改后的鏡像

完成了這些更改后,剩下的就是重新壓縮磁盤鏡像,并將其安裝其到你的樹(shù)莓派的 SD 卡上。

確保退出 chroot 環(huán)境,然后卸載磁盤鏡像:

  1. $ sudo umount ~/mnt/

就像最初解壓縮鏡像一樣,你可以再次使用 xz 命令來(lái)壓縮鏡像。通過(guò)使用 --keep 參數(shù),xz 將保留原始的鏡像,而不是清理掉它。雖然這會(huì)占用更多的磁盤空間,但保留下來(lái)的未壓縮鏡像將允許你對(duì)正在處理的鏡像進(jìn)行增量更改,而不需要每次都對(duì)其進(jìn)行解壓縮。這對(duì)于在測(cè)試和調(diào)整鏡像時(shí)節(jié)省時(shí)間是非常好的。

  1. # 壓縮壓縮磁盤鏡像為一個(gè) .xz 文件,但保留原始磁盤鏡像
  2. xz --compress Fedora-Server-armhfp-31-1.9-sda.raw --keep

壓縮過(guò)程將花費(fèi)一些時(shí)間,所以趁著這個(gè)時(shí)間站起來(lái),舒展身體,讓你的血液再次流動(dòng)。

在壓縮完成后,可以將新的、已修改過(guò)的磁盤鏡像復(fù)制到 SD 卡上,以便與樹(shù)莓派一起使用。標(biāo)準(zhǔn)的 dd 方法將鏡像放置到 SD 卡上也很好用,但是我喜歡使用 Fedora 的 arm-image-installer,因?yàn)樗驗(yàn)樗谔幚砦唇?jīng)編輯的鏡像時(shí)提供了一些選項(xiàng)。它對(duì)編輯過(guò)的鏡像也很好用,并且比 dd 命令更友好一些。

確保檢查 SD 卡在哪個(gè)磁盤驅(qū)動(dòng)器上,并用 --media 參數(shù)使用它:

  1. # 使用 arm-image-installer 來(lái)復(fù)制已修改的磁盤鏡像到 SD 卡上
  2. arm-image-installer --image=Fedora-Server-armhfp-X-y.z-sda.raw.xz --target=rpi3 --media=/dev/sdc --norootpass --resizefs -y

現(xiàn)在,你已經(jīng)為樹(shù)莓派或其它單板機(jī)準(zhǔn)備好了一個(gè)新的、已修改的 Fedora Server ARM 鏡像,準(zhǔn)備好啟動(dòng)并立即 SSH 到你的修改鏡像中。這種方法也可以用來(lái)做其它的修改,并且你也可以使用其它發(fā)行版的原始磁盤鏡像,如果你更喜歡它們,而不是 Fedora 的話。這是一個(gè)開(kāi)始構(gòu)建家庭實(shí)驗(yàn)室私有云的良好基礎(chǔ)。在以后的文章中,我將指導(dǎo)你使用云技術(shù)和自動(dòng)化建立一個(gè)家庭實(shí)驗(yàn)室。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2020-07-14 18:00:33

樹(shù)莓派網(wǎng)絡(luò)文件系統(tǒng)Linux

2021-12-30 09:40:33

CentOS家庭實(shí)驗(yàn)室Linux

2011-06-10 09:37:50

2021-08-04 09:48:05

數(shù)字化

2011-12-19 09:24:50

虛擬化家庭實(shí)驗(yàn)室虛擬桌面

2022-11-22 06:43:33

Kubernetes云服務(wù)Linux

2009-11-20 14:02:42

Oracle遠(yuǎn)程磁盤鏡

2015-02-06 09:23:52

賽可達(dá)實(shí)驗(yàn)室網(wǎng)絡(luò)安全

2011-05-25 17:51:40

2023-08-09 15:11:26

FedoraLinux實(shí)驗(yàn)室

2009-09-21 11:45:36

CCIE實(shí)驗(yàn)室考試

2014-11-27 10:52:17

vlan路由

2022-02-11 14:41:22

樹(shù)莓派操作系統(tǒng)系統(tǒng)安裝

2021-04-03 21:40:51

硬件防火墻家庭實(shí)驗(yàn)室

2015-10-15 09:34:42

數(shù)據(jù)中心成本

2019-05-24 13:30:57

PiShrink樹(shù)莓派Linux

2013-04-07 09:38:00

HPC硬件HPC高性能計(jì)算

2010-08-23 14:01:25

互聯(lián)網(wǎng)

2014-04-08 20:40:01

華為OpenDayligh

2009-09-01 16:41:00

思科認(rèn)證CCIEEdify
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)