帽企業版Linux(Red Hat Enterprise Linux)簡稱為RHEL,它比Fedora穩定。由于CentOS已經被Redhat收購,和RHEL相同源代碼的CentOS近期變成了Fedora和RHEL之間的穩定過渡帶發行版,大家準備逃離CentOS。好在RHEL代碼需要開源,又有許多類似的社區版可供使用。不過RHEL并沒有向個人收取費用,我們不必執著于同rpm軟件包系的Oracle Linux,也不必切換到deb軟件包系的Debian、Ubuntu,就正常使用RHEL就好。
根據CPU類型,從RHEL官網下載光盤鏡像。 比如64位的Intel/AMD CPU選擇x86_64;如果是ARMv8的CPU,選aarch64(某些場合也稱為arm64,如Debian)。 光盤鏡像除CPU架構不同外,根據操作系統是否含有附帶軟件又區分為DVD和Boot鏡像。
下載鏡像需要紅帽賬號,登錄后選擇對應的鏡像,網站會自動開始下載。 需要注意的是,整個下載鏈接只有240分鐘的有效期。所以,請務必保持較好的網速!(8G大小時,平均下載速度需不低于570K/s)
當然,國內某些網站提供了鏡像,比如搜索rhel鏡像出來的山東女子學院鏡像。
禁用swap。一方面考慮內存本身較大,另一方面考慮SSD頻繁讀寫的壽命不高,故選擇禁用swap(不創建swap分區)
用戶數據和程序動態數據與系統文件分離。操作系統需要的文件放在SSD,可以加快啟動和運行,我們可以把“/boot”、“/”、“/boot/efi”放在SSD。用戶數據和程序動態數據占用的空間較大、且修改頻繁,我們可以把“/home”、“/var”放到機械硬盤上。
設置軟件包地址(默認指向安裝光驅) 。
在RHEL8,yum只是dnf的一個軟鏈接。
which yum
# /usr/bin/yum
ls -alh /usr/bin/yum
# dnf-3
ls -alh /usr/bin/dnf
# dnf-3
在"/etc/yum.repos.d"目錄下新建文件media.repo,用于指向光盤鏡像的附帶軟件,即rhel-{m}.{n}-{arch}-dvd.iso。 其中該文件分兩個部分,InstallMedia-BaseOS的baseurl指向BaseOS目錄,我們可以從"/mnt/cdrom/BaseOS"里復制到磁盤目錄"/home/administrator/BaseOS"。 InstallMedia-AppStream指向Apptream目錄,我們可以從"/mnt/cdrom/AppStream"復制到磁盤目錄"/home/administrator/AppStream"。 一個可能的內容如下:
[InstallMedia-BaseOS]
name=Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)
metadata_expire=-1
gpgcheck=1
enabled=1
baseurl=file:///home/administrator/BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
cost=500
[InstallMedia-AppStream]
name=Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
baseurl=file:///home/administrator/AppStream/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
metadata_expire=86400
enabled_metadata=1
在較高版本的RHEL,安裝時就要求聯網,輸入賬號信息進行激活,就不需要此步驟。 較低版本的redhat.repo文件由rhsm自動生成,沒有配置任何信息。可以按照如下步驟操作:
# 注冊,填寫在紅帽官網注冊的用戶名和密碼
subscription-manager register
# 注冊成功后,redhat.repo內容就會被修改,配置完成
# 查看所有repo,會發現現在倉庫標識多了rhel-8-for-x86_64-appstream-rpms和rhel-8-for-x86_64-baseos-rpms
yum repolist
# 查看redhat.repo也能看到文件內容多了很多信息
cat /etc/yum.repos.d/redhat.repo
# dnf clean all
# dnf makecache
# 如果不想注冊到紅帽,或者因網絡問題,注冊不了,可以下載Centos-8.repo,將內容復制到redhat.repo
curl -o Centos-8.repo http://mirrors.aliyun.com/repo/Centos-8.repo
cat Centos-8.repo >> /etc/yum.repos.d/redhat.repo
# 除aliyun外,清華\中科大\華為等大學/公司也提供了鏡像地址
EPEL(Extra Packages for Enterprise Linux)是社區志愿者為RHEL系統(及其衍生系統)提供的高質量附加軟件包倉庫。
# 安裝軟件包
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# 安裝完畢后"/etc/yum.repos.d/"下有epel相關的存儲庫了
ls -alh /etc/yum.repos.d/
# 啟用 "codeready-builder-for-rhel-8-$(arch)-rpms" 存儲庫(EPEL包可能依賴),EPEL支持x86_64,aarch64等架構
subscription-manager repos --enable "codeready-builder-for-rhel-8-$(arch)-rpms"
# 啟用epel-testing
# dnf config-manager --set-enabled epel-testing
# 禁用epel-testing
# dnf config-manager --set-disable epel-testing
# 臨時使用epel-testing
# dnf upgrade --enablerepo=epel-testing
# dnf install <foo> --enablerepo=epel-testing
# 更換鏡像
sudo sed -e 's|^metalink=|#metalink=|g' \
-e 's|^#baseurl=https\?://download.fedoraproject.org/pub/epel/|baseurl=https://mirrors.ustc.edu.cn/epel/|g' \
-e 's|^#baseurl=https\?://download.example/pub/epel/|baseurl=https://mirrors.ustc.edu.cn/epel/|g' \
-i.bak \
/etc/yum.repos.d/epel.repo
使用有線網卡,而且沒有或不使用無線網卡的可以跳過此步驟。 安裝時可以聯網,最小安裝后WIFI無法使用的也可以嘗試按下面方法進行解決。
# 查看網絡配置:可以看到顯示的wl開頭的網卡適配器沒有IP地址,或者有IPv6地址,但是ping不通外網
ifconfig -a
# 查看配置文件,SSID名稱為你連接無線路由的名稱
ls -alh /etc/sysconfig/network-scripts
cat /etc/sysconfig/network-scripts/ifcfg-{SSID}
# 由于目前IPv6的可用性處于薛定諤的貓狀態,先禁用IPv6,可以啟動圖形界面禁用
nmtui
# 再次查看,應該看到已禁用IPv6
cat /etc/sysconfig/network-scripts/ifcfg-{SSID} | grep IPv6_DISABLED
# 嘗試啟用無線網絡連接"wlo1",具體名字根據上一個命令結果
nmcli c up wlo1
# 命令提示失敗原因
# Error: Connection activation failed: No suitable device found for this connection(device lo not available because device is strictly unmanaged)
# 查看服務狀態
sudo systemctl status NetworkManager
# 可以看到提示
# 'wifi' plugin not available; creating generic device
如果是完整DVD安裝,可以嘗試使用yum/dnf命令安裝:
sudo yum install NetworkManager-wifi
# 如果提示當前用戶不在sudoers中時,執行visudo,以“username”用戶名只在本機可運行yum/dnf為例添加一行如下(不含“#”):
# username localhost=/usr/bin/yum,/usr/bin/dnf,/usr/bin/dnf-3
# 更改完后,重新執行安裝命令
sudo dnf install NetworkManager-wifi
如果只有無線網絡,但安裝了雙系統,且Windows系統與Linux在不同的硬盤上時,可以考慮在Windows系統使用WSL來解決:
wsl --update
wsl --shutdown
# 顯示支持的linux發行版,顯示結果分兩列,一列名字(下一個安裝命令會用到),另一列為還是名字(全名,可能包含版本等其他信息)
wsl --list --online
# 選取其中一個發行版,進行安裝
wsl --install -d Debian
# 查看磁盤信息
diskpart
list disk
# WSL不能掛載啟動分區所在磁盤,找到要掛載的磁盤序號(假設為0)
select disk 0
# 找到要掛載的分區號
list partition
## 掛載整個磁盤時也可以使用“wmic diskdrive list brief”來查看磁盤信息
# 裝載指定分區,命令格式:wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
wsl --mount \\.\PHYSICALDRIVE0 --partition 1 --type ext4
# 復制rpm包及依賴包到redhat系統的目錄
cp /mnt/d/Downloads/*.rpm /mnt/uuid/home/pi/Downloads/
# 卸載
wsl --unmount \\.\PHYSICALDRIVE0
# 如果卸載失敗,則退出wsl來卸載
wsl --shutdown
# 進入Linux系統
rpm -i NetworkManager-wifi*.rpm
# 如果安裝失敗,并提示依賴,則先安裝依賴
如果使用啟動鏡像最小化安裝,啟動后是沒有圖形界面的。
安裝圖形界面的方式如下:
# 查看程序組
dnf group list
# 安裝
dnf groupinstall "Server with GUI"
# 設置啟動后默認界面
systemctl set-default graphical.target
# 使用GUI界面
systemctl isolate graphical.target
# 重啟
# reboot
雙系統沒有虛擬機方便的一點是,切換系統需要重啟。但好處是性能會比虛擬機高很多。 但有時候,Windows用的比較順手,有的時候需要Redhat來試驗些東西,而且有些東西也只能用Linux來實驗。 這時我們需要打通兩個系統的文件,當然通過網盤,或者自建NAS也是可行,但畢竟又多了些條件。 我們需要通過U盤,甚至直接讀寫NTFS文件系統。 如果是U盤,一般建議格式化為exFAT。
# fuse-exfat可以用于讀寫exfat格式,在“https://access.redhat.com/downloads/content/package-browser”網頁搜索,可以發現它不在正式軟件包
# 通過搜索exfat,比如網站“https://pkgs.org/search/?q=exfat”,我們找到下載地址,同時發現一個可選的工具exfatprogs在EPEL
sudo dnf install https://download1.rpmfusion.org/free/el/updates/8/x86_64/f/fuse-exfat-1.3.0-3.el8.x86_64.rpm
sudo dnf install exfatprogs
# ntfs-3g和ntfsprogs都在EPEL,ntfs-3g用于掛載及讀寫,ntfsprogs提供了額外的工具(如格式化成NTFS、解密、列出目錄、輸出文件內容)
sudo dnf install ntfsprogs
# 查看磁盤
sudo fdisk -l
# 掛載U盤(假定為sdb1,讓系統自動識別文件格式)
mount /dev/sdb1 /media
# 掛載Windwos文件系統
mount.ntfs-3g /dev/sda0 /mnt/c
# 可以編輯/etc/fstab,在開機后自動掛載
安裝完Linux后,如果Windows啟動項丟失,在grub啟動界面按"c"健,使用如下命令到Windows系統:
# 查看硬盤
ls
# 根據硬盤和分區設置
set root=(hd0,gpt2)
# 如果是BIOS引導
# chainloader +1
# 如果是UEFI引導
chainloader /EFI/Microsoft/bootmgfw.efi
# 啟動
boot
如果直接格式化原來的EFI分區,通過上述方法是無法啟動的。 因為UEFI要求磁盤必須以GPT方式分區,分區后多個系統的啟動文件會在同一個分區的不同文件夾下!當我們格式化分區,安裝其他系統時,相當于丟失原有的啟動文件,自然無法多系統啟動。 此時,我們可以利用多系統啟動文件在同一個分區這個特性,再安裝原來的Windows操作系統到另一個分區上。 安裝成功后,分區信息在Linux系統信息如下:
[root@localhost]# sudo fdisk -l
Disk /dev/nvme0n1:238.5 GiB,256060514304 字節,500118192 個扇區
單元:扇區 / 1 * 512=512 字節
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:gpt
磁盤標識符:27EE6043-B2C3-42B1-B1A6-2C3F85DF9A68
設備 起點 末尾 扇區 大小 類型
/dev/nvme0n1p1 2048 206847 204800 100M EFI 系統
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft 保留
/dev/nvme0n1p3 239616 208613375 208373760 99.4G Microsoft 基本數據
/dev/nvme0n1p4 208613376 209952767 1339392 654M Windows 恢復環境
/dev/nvme0n1p5 209952768 212049919 2097152 1G Linux 文件系統
/dev/nvme0n1p6 212049920 316923903 104873984 50G Linux LVM
/dev/nvme0n1p7 316923904 500117503 183193600 87.4G Microsoft 基本數據
[root@localhost]# sudo mount /dev/nvme0n1p1 /media
[root@localhost]# sudo ls -alh /media/EFI
總用量 24K
drwx------. 5 root root 2.0K 12月 15 15:42 .
drwx------. 3 root root 16K 1月 1 1970 ..
drwx------. 2 root root 2.0K 12月 15 15:44 BOOT
drwx------. 4 root root 2.0K 12月 17 19:37 Microsoft
drwx------. 3 root root 2.0K 12月 17 19:42 redhat
[root@localhost]# sudo umount /dev/nvme0n1p1
由于Linux缺乏編輯BCD的工具,回到新安裝的Windows系統,下載bootice雙擊運行,然后選擇加載當前系統BCD,在智能模式下,將Windows啟動分區設置到原來的Windows分區,最好保存系統設置退出程序,重啟便可以回到原來的Windows系統。
雖然將原來的Windows系統找回變得可啟動,但是Linux的GRUB2啟動選項并沒有Windows菜單。 每次都通過設置UEFI啟動順序來控制使用哪個系統,遠沒有GRUB2菜單選擇方便。 此時需要再登入Linux系統
# 不同的Linux發行版,EFI目錄不一樣,比如centos可能是“/EFI/centos”,
# 安裝redhat將EFI分區掛載在“/boot/efi”目錄下,使用如下命令查看
cat /boot/efi/EFI/redhat/grub.cfg
# 終端輸出30_os-prober信息如下:
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
sudo grub2-mkconfig
正常情況下,在命令運行完后,終端會看到如下信息:
### BEGIN /etc/grub.d/30_os-prober ###
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-A25C-CF85' {
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint=xy ]; then
search --no-floppy --fs-uuid --set=root A25C-CF85
else
search --no-floppy --fs-uuid --set=root A25C-CF85
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
# Other OS found, undo autohiding of menu unless menu_auto_hide=2
if [ "${orig_timeout_style}" -a "${menu_auto_hide}" !="2" ]; then
set timeout_style=${orig_timeout_style}
set timeout=${orig_timeout}
fi
### END /etc/grub.d/30_os-prober ###
此時準備重新生成grub.cfg。
sudo cat /etc/default/grub | grep GRUB_DISABLE_OS_PROBER
# 如果沒有此配置,則追加配置:GRUB_DISABLE_OS_PROBER=false
sudo cp /boot/efi/EFI/redhat/grub.cfg /boot/efi/EFI/redhat/grub.cfg.bak
sudo rm -rf /boot/efi/EFI/redhat/grub.cfg
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
# sudo rm -rf /boot/efi/EFI/redhat/grub.cfg.bak
再查看grub.cfg可以看到原先的30_os-prober之間有了一個menuentry,內容如下:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-A25C-CF85' {
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint=xy ]; then
search --no-floppy --fs-uuid --set=root A25C-CF85
else
search --no-floppy --fs-uuid --set=root A25C-CF85
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
# Other OS found, undo autohiding of menu unless menu_auto_hide=2
if [ "${orig_timeout_style}" -a "${menu_auto_hide}" !="2" ]; then
set timeout_style=${orig_timeout_style}
set timeout=${orig_timeout}
fi
### END /etc/grub.d/30_os-prober ###
重啟查看GRUB2啟動菜單,如果出現Windows菜單,并可正常進入Windows系統便說明修復成功。 如果需要將Windows系統設置為默認啟動系統,可以采取如下方式:
首先安裝好VMware12、VMware14版本都可以 https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.5.9-7535481.exe (如果找不到下載渠道 私聊我網盤發你)
接下來安裝Linux
創建新的虛擬機——>下一步
選擇新建磁盤
選擇操作系統
根據自己的版本選擇對應的系統
虛擬機命名 避免后期出現問題選擇使用英文命名
處理器的配置,根據個人電腦情況配置
虛擬機內存的配置
網絡的選擇
接下來的——>選擇I/O控制器類型——>選擇磁盤的類型——>選擇磁盤——>默認配置點擊下一步
分配虛擬機磁盤
指定磁盤文件——>完成
配置Linux系統
配置Linux的光盤——iso文件
開啟虛擬機進行配置——>選擇語言(英文/中文)
安裝信息摘要
軟件選擇
在安裝Linux的時候配置ip和主機名
在安裝Linux的時候配置ip和主機名
在安裝Linux的時候配置ip和主機名
開始安裝——>配置root(超級管理員)——>可以配置一個普通用戶(用戶名自定義)
等待完成……
然后會出現重啟虛擬機——>reboot——>重啟后ok配置成功!