很多時候,我們不得不從LiveCD修復系統,並且在過程中的某個時刻,我們發現自己缺少工具,並且當我們想要安裝它時,LiveCD OS會告訴我們它已經用完了空間和大蒜和水(滾蛋,堅持下去)。
我們開始做吧。 我們將使用 系統救援光盤,它提供了一個相當全面的基於Gentoo的環境。
在我們的示例中(按照Linux From Scratch的書從頭開始安裝Linux),我們缺少Bison和Makeinfo程序,因此我們將使用新工具創建該磁盤的新ISO映像。
儘管使用了軟件包管理器(例如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
輝煌的時刻已經到來,我們現在可以使用我們的定制系統生成新的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中,其操作如下:
- 您訪問虛擬機配置
- 在網絡部分,您已經在NAT中配置了適配器
- 尋找端口轉發選項
- 您添加一個新規則,其唯一參數為“主機端口”和“來賓端口”
- 主機= 3022和來賓= 22
這樣,我們已經實現了PC的端口3022是虛擬機的22。 我們啟動Filezilla客戶端:
- 在服務器參數中,我們寫:sftp://本地主機
- 在username參數中,我們寫:root
- 在密碼參數中,我們將在“ passwd”中使用的密碼
- 在端口參數中,我們寫:3022
- 點擊«快速連接»
如果一切順利,則可以在PC上向左導航,在虛擬機中向右導航。 只需訪問(在虛擬機中)文件夾«/ mnt / custom / customcd / isofile»並將ISO映像拖到PC上所需的位置即可。
恭喜! 如果一切順利,則可以使用定制的SystemRescueCD準備好ISO映像,並可以從CD,USB引導...
很好的指南,有點複雜,但非常有用。
貢獻良多。
然後,再多一點時間,並且眼睛沒有太多不適,我將徹底閱讀它。 看起來非常有用和有趣。
您好woqer,非常好的帖子!
我已經在LFS工作了幾年,並且創建了自己的iso可以為您服務,因為它是LFS,它具有您需要編譯的所有內容。 😀我希望對您有用
http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso