跳到主要內容

Linux 操作不求人系列 - 零章之壹 - 安裝Linux系統

     此範例為使用類 RedHat Enterprise Linux(RHEL) 系列的開放原始碼(Open Source)的發布版(Distribution)CentOS 6.X 64bit為基礎(以下簡稱 CentOS6_x64,有別於類 Debian Linux 系列的Ubuntu,或SuSE Linux enterprise server之有些內建指令與存放位置的差異。有興趣的讀者,可以參考此網頁(https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions),故不再贅述。首先,安裝CentOS前可先至CentOS.org(網際網路網址(URL)上看到.org,通常都是指某種組織或基金會)網站(http://isoredirect.centos.org/centos/6/isos/x86_64/),可以下載最新的CentOS6_x64版本為6.7,只有32bit舊機器可以從(http://isoredirect.centos.org/centos/6/isos/i386/),文章僅討論64bit的版本,故不再論述32bit的安裝與操作方式。在下載網站內,下載在您附近的位址的檔案,或是您看最順眼的位址,進入下載伺服器後,可以看到如圖二之檔案連結,若您要玩玩無需安裝的CentOS請下載-LiveCD.iso,但不在本文討論之列。需安裝的讀者,請下載-bin-DVD1.iso與-bin-DVD2.iso兩個檔案。

























(圖一)

























(圖二)

     為了教學方便,故筆者在安裝與操作的步驟,選擇利用VirtualBox軟體(https://www.virtualbox.org/)來虛擬化作業系統。VirtualBox的操作或如何虛擬化,並不在本篇討論之列,合先敘明(就是 在此先做說明,賣溝悶啊)。
     要用USB開機或光碟開機的讀者,請先用Tuxboot(或Rufus,unetbootin)等製作USB開機並合併下載的.iso,利用ImgBurn等燒錄.iso光碟軟體,製作開機片。一般來說DVD1.iso是可開機的映像檔。此替代工具與方法,亦不在此贅述。
     利用上述方法開機後,會先看到Grand Unified Bootloader的安裝畫面(以下簡稱GRUB),如要新安裝或升級CentOS第4或5版,可選擇圖三第一行;要以簡易文字介面新安裝,可選擇圖三第二行;圖三第三行,為進入救援系統的介面;圖三第四行,為直接啟動硬碟內現有的作業系統;圖三第五行Memory test,顧名思義為幫您檢測記憶體的錯誤。



















(圖三)

     進入圖三第一行之安裝程序後,可見到如圖五的畫面。因檢查需花大量時間,故筆者不建議檢查光碟,讀者請依自己的興趣與需求點選是否要檢查,在此筆者選擇跳過檢查光碟資料,請點選如圖五下之SKIP
(上述介面操作,可利用鍵盤Tab鍵或結合上下左右鍵來移動,並以Enter鍵確認)

























(圖五)
     跳過檢查後,便可看到如圖六之圖形化安裝介面,此時大部分機器已可利用滑鼠點選操作。接著點選Next,進入選擇語言,如圖七



















(圖六)



















(圖七)

    因筆者安裝與操作習慣,故皆以英文語言為安裝語言(圖七),安裝後之預設語言亦主要為英文,但系統於安裝過程,亦可選擇同時支援中文檔名的正確顯示,在此事先說明。選擇英文後點選 Next 進入圖八,亦選擇英文鍵盤排列,再點選 Next。



















(圖八)

     接著筆者選擇 Basic Storage Devices,如圖九因要掛載安裝的硬碟為一般機器內的硬碟,另一選項為 Specialized Storage Devices,主要針對如儲存區域網路( Storage Area Network, SAN )環境的儲存裝置(例如:以光纖連接的磁碟陣列),一般個人應無需選擇 Specialized Storage Devices



















(圖九)

     接著,安裝程式便會檢查硬碟狀況,並詢問是否要保留硬碟資料,如圖十。若要保留請選擇
No, Keeps any data,因筆者利用虛擬硬碟空間重新安裝,故筆者選擇 Yes, discard any data,勾選的選項,為系統會選擇所有的掛載硬碟,若讀者要安裝在超過一顆以上的硬碟,可利用此選項,但要十分注意各顆硬碟內資料的保留


















(圖十)

     再來進入網路環境的設定,如圖十一,Hostname為輸入您想要的電腦名稱 . 網域名稱,用現有的預設值也可以,若要直接設定網路連線,可點選 Configure Network(圖十一指標處),筆者在此先不輸入,等安裝好再從系統控制介面去設定。直接用預設,接著點選 Next


















(圖十一)

     接著要挑選時區,選擇您所在的時區,如圖十二。筆者身在台灣,故選擇 Asia/Taipei,若不想讓使用 UTC(世界標準時間,以格林威治為準),則將圖十二左下勾選點選來取消,接著點選 Next



















(圖十二)

     再來就是要給定root的密碼,如圖十三,Root Password: 輸入第一次,Confirm: 輸入第二次,兩次要一樣,請選擇一個方便記憶、長度夠長、非字典字不易猜中的密碼。



















(圖十三)

      接著進入選擇系統要安裝在何處,與如何分割,如圖十四。除第五項 Create Custom Layout外,其他一到四項為系統自動幫您調整個磁碟的邏輯分割大小,為了讓讀者能多了解細節,筆者建議大家選擇第五項。進入第五項後,就進行磁碟的分割畫面,如圖十五。



















(圖十四)




















(圖十五)

      承上述,在Linux系統內,硬碟或隨身碟若用SATA、SCSI或USB的連接方式,則通常辨認成sd,第一顆實體磁碟則為sda,第二顆實體則為sdb,依此類推。若是用舊型的PATA(EIDE)連結方式,則為 hd,依舊是 hda,hdb 等依顆數類推。因筆者為虛擬環境,故只運用8G基礎來安裝(圖十五)
備註:何謂SATA、SCSI、USB、PATA,請參閱Wikipedia的說明,連結如下
SATA( https://en.wikipedia.org/wiki/Serial_ATA )
SCSI( https://en.wikipedia.org/wiki/SCSI )
USB ( https://en.wikipedia.org/wiki/USB )
PATA ( https://en.wikipedia.org/wiki/Parallel_ATA )

     在Linux系統下,僅須將磁碟分割成 / (以下以磁碟分割 root 稱之)與SWAP,系統便可以運作。但一般建議分成至少為 / 、 /home、SWAP,三個部分。在Linux系統下,磁碟分割root等同於Windows系統下的C:\,是放關於開機與整個系統相關檔案,包含個人資料夾的位置, Linux系統下的/home,是預設放個人資料夾的位置,故把這個資料夾獨立切出一個邏輯磁碟,可以讓使用者重新安裝系統時,不會影響到個人資料。而SWAP則是Linux系統為了保護實體記憶體( Dynamic Ramdom Access Memory, DRAM)的容量用盡時,可以使用上磁碟空間來當暫存,但速度上一定比實體記憶體慢很多 ( micro second v.s. nano second)。點選 Create 後,會出現如圖十六:



















(圖十六)

     Standard Partition 為標準的邏輯磁碟分割,筆者在此篇使用方式分割,也是最常見的分割。RAID Partition為軟體模擬的磁碟陣列分割,有關磁碟陣列的組成方式可參考(https://en.wikipedia.org/wiki/Standard_RAID_levels),不在本篇討論之內。LVM Physical Volume為軟體模擬的邏輯磁碟容量管理方式,並對磁碟空間調整相當方便,也是很多教材相當推薦的分割方式,本篇在末頁會再提及,但到目前,筆者主要還是先以標準分割為主,對LVM的組成有興趣之讀者,可參考( https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux) )
點選 Standard Partition 後,選擇 Create,接著進入如圖十七的設定Add Partition參數。Mount Point: 選擇 /,File System Type選擇ext4,ext為CentOS Linux最常用的檔案系統格式(有興趣可參考https://en.wikipedia.org/wiki/Ext4)。Size(MB)選擇4000(圖十七上方偵測硬碟/dev/sda,顯示有8192MB)



















(圖十七)

     Addtional Size Options選擇固定大小(Fixed size),4000MB,建議勾選 Force to be a primary partition ( partition的概念可參考https://en.wikipedia.org/wiki/Disk_partitioning,在此不在贅述)後,選擇OK。 再接續從剩下的 free space 去新增 SWAP,一般書籍都會建議SWAP大小為實體記憶體大小的兩倍,但因為現在個人電腦實體記憶體(DRAM)都是好幾G或好幾十G,故筆者認為SWAP的大小現在是見人見智,但至少給到1G以上(如圖十八),畢竟現在影片檔單檔就都超過1G。



















(圖十八)

     接著,再把剩下的空間,就全部給/home,如圖十九,點選 Fill to maximum allowable size,把剩下的 2143MB 空間都掛載到(Mount Point:)  /home 上。做完上步驟,點選 Next 後,便會出現如圖二十左邊的警告訊息,提醒要格式化磁碟。請讀者先注意您要做格式化的磁碟是否有資料,一經格式化後,被格式化的資料也就都消失了,如圖二十右說明。



















(圖十九)


















(圖二十)

     接下來會出現選擇 GRUB 多重開機選單位置,如圖二十一,因筆者僅有一個欲安裝的新作業系統,故預設不變,點選 Next。之前已經有安裝其他 MS Windows 或 Linux 作業系統的讀者,可能在此畫面,會看到其他已有的作業系統。點選 Next 後,就會看到安裝所要選擇基本形式與自訂安裝的套件,如圖二十二。因筆者考量一般使用者應該以個人電腦為主,所以就僅選預設的 Desktop,並於下方選擇 Customize later,有特殊需求的人,如各種研究實驗室、中小企業架站、想做最小化的省空間安裝,便可依選項先選擇 Minimal Desktop、Minimal、Basic Server、Database Server、Web Server、Virtual Host 或 Software Development Workstation。以上僅欲安裝套件數量的差異,與佔用空間大小不同,若真的想要多了解套件內容的讀者,建議可點選圖二十二下方的 Custmoize now,這再往後章節會補充說明之。點選 Next 後,會檢查各種套件的相依性,就轉入複製安裝套件的畫面,如圖二十三:



















(圖二十一)



















(圖二十二)



















(圖二十三)

     複製檔案需要一段長時間如圖二十三,故先去泡杯咖啡。跑完安裝過程後,跟著指示做重新啟動的動作,變進入安裝完成的初始化,如圖二十四,選擇 forward,接著為授權宣告,一樣維持左邊選擇 Yes,選擇 Forward 進入下一步(圖二十五)。接著進入圖二十六,要產生第一個一般使用者,Username:填入使用者名稱,Full Name:填入使用者全名,Password: 填入密碼,Confirm Password: 為填入相同的密碼。密碼原則一樣不能太簡單或字典字,否則會出現如圖二十七之警告訊息,但是忽略而直接點選Yes也可以繼續使用。做完設定使用者,便進入到設定日期與時間,若無錯誤或自行調整後,則直些點選 Forward,接著會選擇是否要啟用Kdump,如圖二十九左。Kdump 的說明,可參考 https://en.wikipedia.org/wiki/Kdump_(Linux),再此不多佐說明,若讀者沒有想深入研究內核崩潰(kernel crash)的原因,請點取取消 Enable kdump,但若是系統管理人員,或想多研究 Linux kernel 的讀者,請保持預設的選取,並點選 Finish,再來,就是真正進入下一章,CentOS Linux 的操作環境裡了。
備註:調整 Kdump 跟 SELinux(https://en.wikipedia.org/wiki/Security-Enhanced_Linux),都必須重開機才能啟用(圖二十九右),是因為兩者都須監控內核(以下簡稱 Kernel)的行為,因而不同於其他於殼層(Shell)執行的服務程式。



















(圖二十四)



















(圖二十五)



















(圖二十六)



















(圖二十七)




















(圖二十八)



(圖二十九)


If you have any feedback or question, please go to my forum to discuss.

這個網誌中的熱門文章

Linux 操作不求人系列 - 貳章之貳 - Shell Script 程式設計(II) - BASH 與 TCSH / CSH

     在上章,我們介紹很多bash shell指令的應用方式,並讓它們變成 script,在這章此節,我們要承襲上節,繼續討論 bash shell script 的其它程式設計概念,與讓程式可重複使用的方法,就是利用函式(function)。      首先,我們來創作一個判斷是否為閏年的函數,script的名稱就取為 check_year.sh ,請自行將其設為可執行。程式碼如圖2-6,為了解說方便,筆者利用指令 nl check_year.sh 將程式碼包含行數印出(圖2-7),其他除顏色外,都與圖2-6同。以下 export 宣告環境變數,自訂變數無需加宣告保留字。(2021.10.07更正export說明,以下自訂變數宣告請直接去除export開頭) (圖2-6) (圖2-7)        圖2-7第2-6行,與之前的範例相似,皆有防堵參數個數輸入錯誤的判斷。第7-11行為接著判斷輸入的年分,是否為真的正整數,也就是大於零的數字。其中第7行可解釋為,利用正規表示式搜尋 $2 字串值得頭至尾部的字元,皆由 0-9 組成,若有,則為真(True)會進入 if 內的陳述執行, 但我們想要的,應該是僅要字串其中一字元為非正整數,便進入if 內的警告並跳出 。故,筆者在判斷式前多加一個 ! ,代表著當字元完全是正整數時,就不要執行  if  內陳述,而直接往第12行執行,但若其中有一個字元為非正整數,則會進入 if 內印出錯誤訊息並跳出 Script 。在此例使用者輸入非正整數等字串(如:12ab、cde、1a1b),便會出現錯誤訊息"Error Value",並跳出 Script 。而第8行的判斷式,效果跟第7行相同,但只能在BASH 3.0才能支援,故筆者故意保留,讓讀者可以學到另一種表示方式。         第12-28行,為宣告一個函式 leapyr () ,在 BASH Script內若要使用含式,必須在使用之前先建立函式的功能,如函式建立在第12-28行,則若要呼叫使用(Call)函式,則必須在第29行之後才能呼叫,並且可重複呼叫。第13行為定義函式呼叫時,一定會有一個外部參數, 此外部參數非該 Script 的外部參數 ,而是由程式撰寫者給入,故在此無設定防呆判斷。第14-

Linux操作不求人 - 伍章之陸 - Intel PXE 與利用 tftp + anaconda kickstart來自動部署系統

     現代的個人電腦與筆電爲了節能省碳,往往皆省略了光碟機的設置。雖然說 USB隨身碟亦可應用於安裝作業系統,但若遇到機房的大量機器需安裝之問題,亦不適合此種用光碟片或隨身碟逐臺安裝的方式,或是需準備多片光碟或隨身碟。故爲了大量安裝與部屬 Linux作業系統的機器,我們便可透過具有PXE功能之網路卡(https://en.wikipedia.org/wiki/Preboot_Execution_Environment),其所具備的網路開機的能力,來作透過網路方式來安裝與大量部署 CentOS Linux作業系統。其原理 wikipedia  的PXE說明,都解釋得很清楚,筆者不需要再 " 掉書包 ",在開發者大神面前班門弄斧,我們就直接來做做看。      首先,我們一樣透過 yum來安裝所需的 tftp伺服器軟體(http://www.jounin.net/tftpd32.html),利用PXE支援 tftp 透過 udp 埠號 69連線,來提供檔案的能力,給利用 PXE開機後安裝作業系統的機器,圖5-60   (圖5-60) 接著修改 tftp 設定檔 /etc/xinetd.d/tftp,如圖5-61,請記得 disable  要改為 no (圖5-61)      若要修改 server_args 參數為自訂的 tftp root 路徑,記得要變更 SELinux 的權限設定,如要改為/tftpboot,則使用指令 chcon  來調整,如以下: $ mkdir /tftpboot $ chcon  --reference /var/lib/tftpboot  /tftpboot 接著將 xinetd 與 tftp 加入開機啟動,並重啟動 xinetd,如下: $ chkconfig  --level  235  xinetd on $ chkconfig  --level  235  tftp  on $ service xinetd restart 開放防火牆通行 $ iptables -A INPUT -p udp --dport 69 -j ACCEPT $ service iptables re

Linux操作不求人- 肆章之壹 - 伺服器架設(I) - SSH(SFTP、SCP)、FTP伺服器與遠端連線

@ ssh, sftp      通常安裝好 CentOS6_x64 作業系統後,sshd, ssh daemon 的服務功能是預設開啟的,如筆者的前面篇章所述,預設的 iptables 防火牆設定,亦是開啟讓 ssh 的連線是可通過的,不僅可以連出,也可以被連入。若要確認是否有安裝 sshd 套件以及在啟動時的 runlevel 2 3 5 是否有被載入,可以使用以下指令搜尋: $   rpm  -qa  |   grep  openssh     #  ssh 與 sshd 連線服務皆由 openssh 應用軟體提供。 或使用以下 $   rpm  -qa  |   grep  ssh         #  比用關鍵字 openssh 搜尋更模糊,故符合的條件更多。      如圖4-1可以查詢到有關於 openssh-client 與 openssh-server 的套件, openssh-server 便是提供連入服務的軟體,openssh-client 為提供可以連出的工具。若無以上套件,則使用 yum install openssh ,則可下載安裝。 (圖4-1) 再接著輸入以下指令查詢到 sshd 這個服務,是否有再開機程序內載入,如圖4-2 $ chkconfig | grep ssh   # 查詢 sshd 是否有於 開機 runlevel 啟動 再利用以下指令,來查詢是否防火牆有允許連線 $ iptables  -L  |  grep ssh   # 出現如圖4-2 允許通過之條件 (圖4-2)      接下來,我們要先來調整 sshd 的設定檔,利用 vim  /etc/sshd/sshd_conf ,如圖4-3-1與4-3-2。因為設定檔參數很多,筆者為方便說明,將 /etc/sshd/sshd_conf 檔案內容分成兩張圖。 (圖4-3-1)