測試環境為 :
PXE Server – RHEL 6.8 x64
PXE Client – RHEL 7.3 x64
關於 PXE 詳細設定請參考 https://benjr.tw/83
RHEL 7 要透過 PXE 來安裝,設定檔如下:
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default label linux menu label Install system kernel vmlinuz append initrd=initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/
安裝的時候遇到 Xorg 沒有辦法啟動,這時候要透過 inst.xdriver 指定 Xorg 驅動程式.
inst.xdriver=
在安裝過程時指定 Xorg 的驅動程式名稱.
常見的有
- qxl (QEMU QXL video accelerator)
- ati
- intel
- sisusb
- mga
- r128
- radeon (Driver for ATI/AMD Radeon)
- modesetting (Kernel Mode Setting)
- trident
- spiceqxl
- cirrus
- savage
- sis
- nouveau (Nvidia 的顯示卡)
- siliconmotion
- mach64
- tdfx
- vmware
- openchrome
- s3
- neomagic
- vesa (VESA-compatible)
- fbdev (Linux framebuffer X)
- v4l (old Xv ddx driver for video4linux devices)
最常用的是 inst.xdriver=vesa
指定 xorg driver 驅動程式為 vesa,而且只要是 VESA-compatible video cards 都可以使用.
也可以採用另外一個參數 inst.usefbx 直接指定 inst.xdriver=fbdev (Linux framebuffer X 驅動程式)
但是不確定你的作業系統有支援哪一些顯示卡的驅動程式.可以先用 文字模式安裝完畢,再透過 Xorg -configure 來查詢安裝的作業系統支援哪一些 xorg 的驅動程式.
[root@localhost ~]$ Xorg -configure X.Org X Server 1.17.2 Release Date: 2015-06-16 X Protocol Version 11, Revision 0 Build Operating System: 2.6.32-573.18.1.el6.x86_64 Current Operating System: Linux localhost.localdomain 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-514.6.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 Build Date: 06 November 2016 12:43:39AM Build ID: xorg-x11-server 1.17.2-22.el7 Current version of pixman: 0.34.0 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/Xorg.0.log", Time: Sat Apr 22 00:01:03 2017 List of video drivers: ati intel nouveau qxl radeon v4l vmware vesa fbdev modesetting dummy (++) Using config file: "/root/xorg.conf.new" (==) Using config directory: "/etc/X11/xorg.conf.d" (==) Using system config directory "/usr/share/X11/xorg.conf.d" Xorg detected your mouse at device /dev/input/mice. Please check your config if the mouse is still not operational, as by default Xorg tries to autodetect the protocol. Your xorg.conf file is /root/xorg.conf.new To test the server, run 'X -config /root/xorg.conf.new' (EE) Server terminated with error (2). Closing log file.
Xorg 會顯示目前他有支援的 VGA 驅動模組.並且自行偵測你的系統可以使用哪一種模組,新產生的設定檔 xorg.conf.new 會儲存在家目錄,我們需要把該檔案從家目錄 xorg.conf.new 複製到 /etc/X11 ,如果偵測錯誤,可依據剛才支援列表中自行編輯成目前系統的 VGA 的驅動模組.
修改後就可以啟動 X-window
[root@localhost ~]$ cp xorg.conf.new /etc/X11/xorg.conf [root@localhost ~]$ vi /etc/X11/xorg.conf Section "Device" Identifier "Card0" Driver "fbdev" BusID "PCI:0:15:0" EndSection [root@localhost ~]$ startx
如果可以進入 X-Windows ,這個 VGA 的驅動模組就確定可以在你的系統上來使用.
現在回到 PXE 加入 VGA 的驅動模組參數,剛剛我的系統可以使用 fbdev ,所以就在 PXE 參數指定 Xorg 驅動模組 (inst.xdriver= fbdev).
還有另外一個參數 nomodeset 可以同時搭配來使用
不使用 Kernel modesetting (KMS),而核心模式設定(KMS)主要將螢幕顯示解析度和顯示色深從的顯示由使用者空間(user space)提升到核心空間(kernel space)
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default label linux menu label Install system kernel vmlinuz append initrd=initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/ inst.xdriver=fbdev nomodeset
現在在 PXE 安裝過程都可以透過 X-Window ,但安裝完後開機系統卻停在文字介面並顯示
random: nonblocking pool is initialized
網路上面的討論是建議加入 nomodeset 開機參數,檢查 /etc/default/grub 裡面 GRUB_CMDLINE_LINUX 參數有 nomodeset 沒有 fbdev,加入 fedev 再重新開機,結果還是一樣.
[root@localhost ~]# cat /etc/default/grub GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cla/root rd.lvm.lv=cla/swap fbdev nomodest
最後只好先切換 控制台至 Alt-F2 並再重新設定 Xorg (方式如前面重新設定),重開機就正常了.