CentOS 7 0全自動安裝光碟製作詳解

2021-10-25 07:04:02 字數 4449 閱讀 1047

centos 7.0全自動安裝光碟製作詳解

1 複製光碟檔案

1 )掛載 iso 映象

建立目錄用於掛載光碟:

mkdir /root/centos7

掛載 iso 映象

mount -o loop centos-7.0-1406-x86_64-***.iso/root/centos7

2 )複製光碟檔案到編輯目錄進行編輯

因為掛載上 iso 映象是唯讀的,如果要編輯,需要將檔案複製出來,再編輯。

複製光碟檔案:

cp -rf /root/centos7/* /root/centos7_iso/

diskinfo 檔案需求單獨拷貝下:

cp /root/centos7/.discinfo /root/iso

2 編輯 ks.cfg 檔案

系統安裝的時候,按照 ks.cfg 檔案的內容進行安裝,我們把 ks.cfg 檔案放到 isolinux 目錄下:

cd /root/centos7_iso/isolinux

vim ks.cfg

我的 ks.cfg 檔案內容如下:

#version=rhel/centos7 by xiaoli110

install

keyboard 『us』

reboot

firstboot --enable

ignoredisk --only-use=sda

keyboard --vckeymap=us --xlayouts=『cn』

lang zh_cn.utf-8

#network --bootproto=dhcp --device=enp2s0 --onboot=off --ipv6=auto

#network --bootproto=dhcp --device=enp3s0 --onboot=off --ipv6=auto

#network --hostname=localhost.localdomain

rootpw --iscrypted 111111111111111111111111111

timezone asia/shanghai

lang zh_cn

firewall --enabled --ssh

auth --useshadow --passalgo=sha512

cdrom

graphical

selinux --disabled

skipx

bootloader --location=mbr

zerombr

clearpart --all

part /boot --fstype=「xfs」–size=500

part /boot/efi --fstype=「xfs」–size=500

part swap --fstype=「swap」–size=16000

part / --fstype=「xfs」 --grow–size=1

%packages

@base

@core

@development

@hardware-monitoring

@performance

@remote-system-management

%end

注意:1 )因為 centos7 系統網絡卡規則更複雜,為了 ks.cfg 更通用,最好 ks.cfg 不用制定網絡卡配置。

2 )為了相容 mbr 方式和 efi 方式,同時建立了 /boot 和 /boot/efi 分割槽。

3 配置 mbr 引導方式

注意點:

1 ) memu label 後面的內容是在光碟引導起來選單的內容, ^ 後面的字母是選單的快捷鍵;

2 )通過 inst.ks 關鍵字指明 ks.cfg 檔案位置;

3 ) inst.stages2 標識的是系統按照介質位置,這裡使用 hd:label 表明尋找的是 label 為 centos7 的安裝介質,使用 label 關鍵字的好處是可以精確指定安裝介質,為什麼 label 是 centos7 ,是因為我在製作光碟映象的時候指定的,方法在後面有介紹。

4 配置 efi 引導方式

1 ) efi 簡介

efi 可擴充套件韌體介面( extensiblefirmware inte***ce 的縮寫),是英特爾主導推出的一種替代 bios 的公升級方案。最早由英特爾開發,於 2005 年將此規範格式交由 uefi 論壇來推廣與發展,後來並更改名稱為 unified efi(uefi) 。 uefi 論壇於 2007 年 1 月 7 日發布並發放 2.1 版本的規格,其中增加與改進了加密編碼( cryptography )、網路認證( network authentication )與使用者介面架構( user inte***ce architecture )。

efi 是用模組化, c 語言風格的引數堆疊傳遞方式,動態鏈結的形式構建的系統,較 bios 而言更易於實現,容錯和糾錯特性更強,縮短了系統研發的時間。

efi 在概念上非常類似於乙個低階的作業系統,並且具有操控所有硬體資源的能力。

2 )配置 efi 引導

進入光碟目錄 efi/boot/ ,編輯 grub.cfg 檔案,新增自己的選單:

menuentry 『install centos 7』 --class fedora–class gnu-linux --class gnu --class os

menuentry 『install centos 7 custom byxiaoli110』 --class fedora --class gnu-linux --class gnu --class os

和 mbr 方式類似,指明 ks.cfg 檔案位置和安裝源位置。

5 生成 iso 映象

經過我踩過多個坑,成功的生成映象,並且能在 efi 和 mbr 環境安裝的映象生成命令如下:

genisoimage -v -cache-inodes -joliet-long -r -j -t -v centos7 -o /root/centos7.iso

-c isolinux/boot.cat -bisolinux/isolinux.bin

-no-emul-boot -boot-load-size 4-boot-info-table

-eltorito-alt-boot -b images/efiboot.img -no-emul-boot .

( 1 )中間踩過的幾個坑:

1 )製作映象要使用 centos7 的系統,不要使用 centos6 的系統,因為兩者系統的 genisoimage 命令的版本不一樣, 6 的系統製作出來的 iso 不能在 efi 環境啟動;

2 )如果要在 efi 啟動,需要新增如下引數:

-eltorito-alt-boot -bimages/efiboot.img -no-emul-boot

3 )通過 -v 引數指定光碟 label

( 2 ) genisoimage 命令引數簡介

-o 指定映像檔案的名稱。

-b 指定在製作可開機光碟時所需的開機映像檔案。

-c 製作可開機光碟時,會將開機映像檔案中的 no-eltorito-catalog 全部內容作成乙個檔案。

-no-emul-boot 非模擬模式啟動。

-boot-load-size 4 設定載入部分的數量。

-boot-info-table 在啟動的影象中現實資訊。

-joliet-long 使用 joliet 格式的目錄與檔名稱,長檔名支援。

-r 或 -rock 使用 rock ridgeextensions 。

-j 或 -joliet 使用 joliet 格式的目錄與檔名稱。

-v 或 -verbose 執行時顯示詳細的資訊。

-t 或 -translation-table 建立檔名的轉換表,適用於不支援 rock ridge extensions 的系統上。

( 3 ) genisoimage 、 mkisofs 、 xorrios 幾個命令的區別

說起 genisoimage 和 mkisofs ,其實裡面是有點故事的。

最早的時候, linux 系統使用 cdrtools 工具來管理 iso 及光碟, mkisofs 是 cdrtools 裡面的乙個工具,後來 cdrtools 更好了了授權許可,從 gpl 修改為 cddl 許可,開源社群又推出了一套基於 gpl 的工具, cdrkit , mkisofs 也被 genisoimage 去掉,現在系統中的 mkisofs 實際是 genisoimage 的軟連線:

ls -l /usr/bin/mkisofs

/usr/bin/mkisofs ->/etc/alternatives/mkisofs

ls -l /etc/alternatives/mkisofs

/etc/alternatives/mkisofs ->/usr/bin/genisoimage

xorrios 是另外乙個比較流行的製作 iso 映象的工具,並且有乙個引數 -asmkisofs 可以和 mkiso 命令相容。

centos7 0安裝lamp方法

一 配置防火牆,開啟80埠 3306埠 centos 7.0預設使用的是firewall作為防火牆,這裡改為iptables防火牆。1 關閉firewall systemctl stop firewalld.service 停止firewall systemctl disable firewalld...

centos7 0 下安裝git(ssh方式)

1 安裝依賴的庫 root localhost yum install curl devel expat devel gettext devel openssl devel zlib devel perl devel 2 刪除原本的安裝的git 4 編譯安裝 root localhost src t...

centos7 0 下安裝git(ssh方式)

安裝依賴的庫 root localhost yum install curl devel expat devel gettext devel openssl devel zlib devel perl devel 2 刪除原本的安裝的git 4 編譯安裝 root localhost src tar...