定制修復盤:LFS之路

很多時候,我們不得不從LiveCD修復系統,並且在過程中的某個時刻,我們發現自己缺少工具,並且當我們想要安裝它時,LiveCD OS會告訴我們它已經用完了空間和大蒜和水(滾蛋,堅持下去)。

因為進入LFS(從零開始),這是安裝自定義Linux的指南(不是發行版本身)。 這種“分發”的意義在於,可以從任何LiveCD中使用適當的工具下載內核代碼和其他工具來構建自己的系統(一點一點地編譯所有內容)。 如果要遵循循序漸進的指南,則需要多個工具和編譯器,並且沒有所有功能的liveCD,因此必須自定義一個。

我們開始做吧。 我們將使用 系統救援光盤,它提供了一個相當全面的基於Gentoo的環境。

在我們的示例中(按照Linux From Scratch的書從頭開始安裝Linux),我們缺少Bison和Makeinfo程序,因此我們將使用新工具創建該磁盤的新ISO映像。

注意:Gentoo是可以編譯的發行版 現場 所有要安裝的軟件包,因此添加和更新程序的過程很慢。

儘管使用了軟件包管理器(例如Debian的apt-get),但不是下載軟件包,而是下載源代碼以在您的計算機上編譯它。

對於此過程,您將需要至少有4G可用空間的Linux分區(例如ext1.5),儘管建議使用更多空間。 如果您不想擺弄分區,請使用虛擬機。 當然,建議該分區有幾個演出,因為在編譯,安裝,存儲庫同步期間……需要臨時空間; 我建議使用8G + 2G交換分區(對於4G + 1G應該足夠了,但是我們可以向您保證,如果缺少RAM /交換,則過程會更加緩慢)。

假設您創建了一個具有10G磁盤的虛擬機,則通過告訴該虛擬機從新下載的SystemRescueCd進行啟動來啟動該虛擬機。 一旦進入內部,我們將使用fdisk進行分區(如果您已經開始了圖形化會話,則可以使用gparted進行此操作,但是本文的目的是教授基本工具的用法)。 fdisk是一個交互式命令:

  • 使用選項“ n”,我們創建一個新分區
  • 使用選項“ t”,我們更改將在分區中使用的文件系統的類型
  • 使用選項“ w”,我們寫入磁盤
  • 使用選項“ q”,我們不寫更改就離開

當我們使用“ n”選項時,它將始終為我們提供多個選項,除了在第一個分區中設置最後一個扇區時,我們將不得不寫入“ + 8G”,從而向程序指示我們希望分區佔用8GB。

創建第二個分區時,我們將使用默認選項,因為其餘空間將被佔用。 另外,要告訴fdisk第二個分區將是swap類型,請使用“ t”選項(交換的十六進制為82)。 該界面如下所示:

%fdisk / dev / sda命令(尋求幫助的m):

完成所有操作後,我們使用“ w”選項將更改寫入磁盤並退出。
現在是時候格式化分區了。 我們將從交換開始,以便立即使用它:

%mkswap / dev / sda2%swapon / dev / sda2

我們已經格式化了交換分區,並使用以下命令 交換 我們已經開始使用它。 現在我們在ext4中格式化第一個分區:

% mkfs.ext4 /dev/sda1

我們可以開始遵循 http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd,這裡我用奇數註釋翻譯/描述它們。

我們將分區安裝到位(LiveCD已經準備好了一個文件夾/ mnt / custom,必須在其中安裝要進行適當更改的分區)。 同樣,在掛載之後,我們將不得不從磁盤中提取文件,這是通過已經準備好的腳本來實現的。 該腳本將花費一些時間(因為它會轉儲數百兆的內存),如果您想檢查腳本是否確實在工作,請轉到另一個終端(例如,使用Alt + F4)並執行 df -h.

%mount / dev / sda2 / mnt / custom%/ usr / sbin / sysresccd-custom解壓縮

如果您現在在 / mnt /定制/ customcd,您將看到幾個文件夾。 在 / mnt / custom / customcd /文件 找到根文件系統。 現在是時候更改未來的新系統了。 在這裡,我將放置命令,有關chroot的更多信息,請參見 我一個月前寫的本教程

%mount -o bind / proc / mnt /定制/ customcd /文件/ proc%mount -o bind / dev / mnt /定制/ customcd /文件/ dev%mount -o bind / sys / mnt / custom / customcd /文件/ sys%chroot / mnt /自定義/ customcd /文件/ bin / bash#gcc-config $(gcc-config -c)

我們已經在chroot系統中,一旦啟動它便是LiveCD系統。 我們將使用以下命令安裝缺少的軟件包(bison和texinfo) 出現 (由誰來處理 搬運 來自gentoo)。

首先,我們同步portage樹(相當於 APT-get的更新)
# emerge-webrsync 注意:我們使用此命令而不是“ emerge –sync”,因為它更快,因為它可以從Web下載tar包。 這一步是必要的,因為如果您不出現,它將自動出現–sync,從而使其變慢。

同步portage樹之後,我們可以繼續安裝軟件包:

#出現sys-devel /野牛#出現sys-devel / texinfo
野牛需要一段時間才能編譯,要耐心

我們離開chroot:# exit

我們卸載“ / proc”,以便將新安裝的軟件包存儲在squashfs中。 我們還卸載了“ / dev”和“ / sys”,以便以後不要忘記
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

由於我們已經準備好了新的南瓜文件系統,因此可以使用以下命令創建它
% /usr/sbin/sysresccd-custom squashfs
如果要在ISO映像中添加文件,但希望將其放置在squashfs之外,則必須將其放入文件夾«/ mnt / custom / customcd / isoroot»

% cp -a my-files /mnt/custom/customcd/isoroot

此時,官方指南告訴您可以將鍵映射設置為使用默認鍵盤啟動(例如,西班牙語鍵盤為“ es”)。 但是進行幾次測試後,它們為我使用的腳本無法正常工作,並且在加載內核時導致錯誤,因此我將跳過此步驟。

輝煌的時刻已經到來,我們現在可以使用我們的定制系統生成新的ISO映像!
% /usr/sbin/sysresccd-custom isogen my_srcd
“ My_srcd”是我們為該卷命名的名稱,您可以隨意命名。 圖像保存在«/ mnt / custom / customcd / isofile»中,此外還會生成一個.md5文件🙂

如果您使用的是虛擬磁盤,那麼關鍵步驟仍然是:提取虛擬系統的ISO映像。 有幾種方法,我將解釋一種簡單的方法(在VirtualBox中),以避免必須安裝“來賓添加”或類似的方法。
我們將使用客戶端通過ssh隧道獲取文件。 為此,我們必須首先使用根密碼配置來賓系統。 ssh服務器會自動啟動,為了以防萬一,我們仍然會重新啟動它。
% passwd
% /etc/init.d/sshd restart

我們必須配置虛擬機的端口轉發。 在VirtualBox中,其操作如下:

  1. 您訪問虛擬機配置
  2. 在網絡部分,您已經在NAT中配置了適配器
  3. 尋找端口轉發選項
  4. 您添加一個新規則,其唯一參數為“主機端口”和“來賓端口”
  5. 主機= 3022和來賓= 22

這樣,我們已經實現了PC的端口3022是虛擬機的22。 我們啟動Filezilla客戶端:

  1. 在服務器參數中,我們寫:sftp://本地主機
  2. 在username參數中,我們寫:root
  3. 在密碼參數中,我們將在“ passwd”中使用的密碼
  4. 在端口參數中,我們寫:3022
  5. 點擊«快速連接»

如果一切順利,則可以在PC上向左導航,在虛擬機中向右導航。 只需訪問(在虛擬機中)文件夾«/ mnt / custom / customcd / isofile»並將ISO映像拖到PC上所需的位置即可。

恭喜! 如果一切順利,則可以使用定制的SystemRescueCD準備好ISO映像,並可以從CD,USB引導...


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   獅子座 他說:

    很好的指南,有點複雜,但非常有用。
    貢獻良多。

  2.   麻風病人 他說:

    然後,再多一點時間,並且眼睛沒有太多不適,我將徹底閱讀它。 看起來非常有用和有趣。

  3.   卡洛斯·桑切斯(Carlos Sanchez) 他說:

    您好woqer,非常好的帖子!

    我已經在LFS工作了幾年,並且創建了自己的iso可以為您服務,因為它是LFS,它具有您需要編譯的所有內容。 😀我希望對您有用

    http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso