## 8.5 光盤寫入工具
事實上,企業還是挺愛用磁帶來進行備份的,容量高、儲存時限長、挺耐摔等等,至于以前很熱門的 DVD/CD 等,則因為儲存速度慢、 容量沒有大幅度提升,所以目前除了行政部門為了“歸檔”而需要的工作之外,這個咚咚的存在性已經被 U盤所取代了。 你可能會談到說,不是還有藍光嘛?但這家伙目前主要應用還是在多媒體影音方面,如果要大容量的儲存,個人建議,還是使用 USB 外接式硬盤, 一顆好幾個 TB 給你用,不是更爽嘛?所以,鳥哥是認為,DVD/CD 雖然還是有存在的價值 (例如前面講的歸檔),不過,越來越少人使用了。
雖然很少使用,不過,某些特別的情況下,沒有這東西又不行~因此,我們還是來介紹一下創建光盤鏡像文件以及燒錄軟件吧! 否則,偶而需要用到時,找不到軟件數據還挺傷腦筋的!文字模式的燒錄行為要怎么處理呢?通常的作法是這樣的:
* 先將所需要備份的數據創建成為一個鏡像文件(iso),利用 mkisofs 指令來處理;
* 將該鏡像文件燒錄至光盤或 DVD 當中,利用 cdrecord 指令來處理。
下面我們就分別來談談這兩個指令的用法吧!
### 8.5.1 mkisofs:創建鏡像文件
燒錄可開機與不可開機的光盤,使用的方法不太一樣喔 !
* 制作一般數據光盤鏡像文件
我們從 FTP 站捉下來的 Linux 鏡像文件 (不管是 CD 還是 DVD) 都得要繼續燒錄成為實體的光盤/DVD 后, 才能夠進一步的使用,包括安裝或更新你的 Linux 啦!同樣的道理,你想要利用燒錄機將你的數據燒錄到 DVD 時, 也得要先將你的數據包成一個鏡像文件,這樣才能夠寫入DVD片中。而將你的數據包成一個鏡像文件的方式就通過 mkisofs 這個指令即可。 mkisofs 的使用方式如下:
```
[root@study ~]# mkisofs [-o 鏡像文件] [-Jrv] [-V vol] [-m file] 待備份文件... \
> -graft-point isodir=systemdir ...
選項與參數:
-o :后面接你想要產生的那個鏡像文件文件名。
-J :產生較相容于 windows 機器的文件名結構,可增加文件名長度到 64 個 unicode 字符
-r :通過 Rock Ridge 產生支持 Unix/Linux 的文件數據,可記錄較多的信息(如 UID/GID等) ;
-v :顯示創建 ISO文件的過程
-V vol :創建 Volume,有點像 Windows 在文件資源管理器內看到的 CD title 的東西
-m file :-m 為排除文件 (exclude) 的意思,后面的文件不備份到鏡像文件中,也能使用 * 萬用字符喔
-graft-point:graft有轉嫁或移植的意思,相關數據在下面文章內說明。
```
其實 mkisofs 有非常多好用的選項可以選擇,不過如果我們只是想要制作“數據光盤”時,上述的選項也就夠用了。 光盤的格式一般稱為 iso9660 ,這種格式一般僅支持舊版的 DOS 文件名,亦即文件名只能以 8.3 (文件名8個字符,擴展名3個字符) 的方式存在。如果加上 -r 的選項之后,那么文件信息能夠被記錄的比較完整,可包括UID/GID與權限等等! 所以,記得加這個 -r 的選項。
此外,一般默認的情況下,所有要被加到鏡像文件中的文件都會被放置到鏡像文件中的根目錄, 如此一來可能會造成燒錄后的文件分類不易的情況。所以,你可以使用 -graft-point 這個選項,當你使用這個選項之后, 可以利用如下的方法來定義位于鏡像文件中的目錄,例如:
* 鏡像文件中的目錄所在=實際 Linux 文件系統的目錄所在
* /movies/=/srv/movies/ (在 Linux 的 /srv/movies 內的文件,加至鏡像文件中的 /movies/ 目錄)
* /linux/etc=/etc (將 Linux 中的 /etc/ 內的所有數據備份到鏡像文件中的 /linux/etc/ 目錄中)
我們通過一個簡單的范例來說明一下吧。如果你想要將 /root, /home, /etc 等目錄內的數據通通燒錄起來的話, 先得要處理一下鏡像文件,我們先不使用 -graft-point 的選項來處理這個鏡像文件試看看:
```
[root@study ~]# mkisofs -r -v -o /tmp/system.img /root /home /etc
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.11 (Linux)
Scanning /root
.....(中間省略).....
Scanning /etc/scl/prefixes
Using SYSTE000.;1 for /system-release-cpe (system-release) # 被改名子了!
Using CENTO000.;1 for /centos-release-upstream (centos-release) # 被改名子了!
Using CRONT000.;1 for /crontab (crontab)
genisoimage: Error: '/etc/crontab' and '/root/crontab' have the same Rock Ridge name 'crontab'.
Unable to sort directory # 文件名不可一樣啊!
NOTE: multiple source directories have been specified and merged into the root
of the filesystem. Check your program arguments. genisoimage is not tar.
# 看到沒?因為文件名一模一樣,所以就不給你創建 ISO 檔了啦!
# 請先刪除 /root/crontab 這個文件,然后再重復執行一次 mkisofs 吧!
[root@study ~]# rm /root/crontab
[root@study ~]# mkisofs -r -v -o /tmp/system.img /root /home /etc
.....(前面省略).....
83.91% done, estimate finish Thu Jul 2 18:48:04 2015
92.29% done, estimate finish Thu Jul 2 18:48:04 2015
Total translation table size: 0
Total rockridge attributes Bytes: 600251
Total directory Bytes: 2150400
Path table size(Bytes): 12598
Done with: The File(s) Block(s) 58329
Writing: Ending Padblock Start Block 59449
Done with: Ending Padblock Block(s) 150
Max brk space used 548000
59599 extents written (116 MB)
[root@study ~]# ll -h /tmp/system.img
-rw-r--r--. 1 root root 117M Jul 2 18:48 /tmp/system.img
[root@study ~]# mount -o loop /tmp/system.img /mnt
[root@study ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 117M 117M 0 100% /mnt
[root@study ~]# ls /mnt
abrt festival mail.rc rsyncd.conf
adjtime filesystems makedumpfile.conf.sample rsyslog.conf
alex firewalld man_db.conf rsyslog.d
# 看吧!一堆數據都放置在一起!包括有的沒有的目錄與文件等等!
[root@study ~]# umount /mnt
# 測試完畢要記得卸載!
```
由上面的范例我們可以看到,三個目錄 (/root, /home, /etc) 的數據通通放置到了鏡像文件的最頂層目錄中! 真是不方便~尤其由于 /root/etc 的存在,導致那個 /etc 的數據似乎沒有被包含進來的樣子!真不合理~ 此時我們可以使用 -graft-point 來處理啰!
```
[root@study ~]# mkisofs -r -V 'linux_file' -o /tmp/system.img \
> -m /root/etc -graft-point /root=/root /home=/home /etc=/etc
[root@study ~]# ll -h /tmp/system.img
-rw-r--r--. 1 root root 92M Jul 2 19:00 /tmp/system.img
# 上面的指令會創建一個大文件,其中 -graft-point 后面接的就是我們要備份的數據。
# 必須要注意的是那個等號的兩邊,等號左邊是在鏡像文件內的目錄,右側則是實際的數據。
[root@study ~]# mount -o loop /tmp/system.img /mnt
[root@study ~]# ll /mnt
dr-xr-xr-x. 131 root root 34816 Jun 26 22:14 etc
dr-xr-xr-x. 5 root root 2048 Jun 17 00:20 home
dr-xr-xr-x. 8 root root 4096 Jul 2 18:48 root
# 瞧!數據是分門別類的在各個目錄中喔這樣了解乎?最后將數據卸載一下:
[root@study ~]# umount /mnt
```
如果你想要將實際的數據直接倒進 ISO 檔中,那就得要使用這個 -graft-point 來處理處理比較妥當!不然沒有分第一層目錄, 后面的數據管理實在是很麻煩。如果你是有自己要制作的數據內容,其實最簡單的方法,就是將所有的數據預先處理到某一個目錄中, 再燒錄該目錄即可!例如上述的 /etc, /root, /home 先全部復制到 /srv/cdrom 當中,然后跑到 /srv/cdrom 當中, 再使用類似“ mkisofs -r -v -o /tmp/system.img . ”的方式來處理即可!這樣也比較單純~
* 制作/修改可開機光盤圖像擋
在鳥哥的研究室中,學生常被要求要制作“一鍵安裝”的安裝光盤!也就是說,得要修改原版的光盤鏡像文件,改成可以自動載入某些程序的流程, 讓這片光盤放入主機光驅后,只要開機利用光盤片來開機,那就直接安裝系統,不再需要詢問管理員一些有的沒有的!等于是自動化處理啦! 那些流程比較麻煩,因為得要知道 kickstart 的相關技術等,那個我們先不談,這里要談的是,那如何讓這片光盤的內容被修改之后, 還可以燒錄成為可開機的模樣呢?
因為鳥哥這部測試機的容量比較小,又僅是測試而已啊,因此鳥哥選擇 CentOS-7-x86_64-Minimal-1503-01.iso 這個最小安裝光盤鏡像文件來測試給各位瞧瞧! 假設你已經到昆山科大 [http://ftp.ksu.edu.tw/FTP/CentOS/7/isos/x86_64/](http://ftp.ksu.edu.tw/FTP/CentOS/7/isos/x86_64/) 取得了最小安裝的 Image 檔,而且放在 /home 下面~之后我們要將里頭的數據進行修改,假設新的鏡像文件目錄放置于 /srv/newcd 里面,那你應該要這樣做:
```
# 1\. 先觀察一下這片光盤里面有啥東西?是否是我們需要的光盤系統!
[root@study ~]# isoinfo -d -i /home/CentOS-7-x86_64-Minimal-1503-01.iso
CD-ROM is in ISO 9660 format
System id: LINUX
Volume id: CentOS 7 x86_64
Volume set id:
Publisher id:
Data preparer id:
Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) ...
Copyright File id:
.....(中間省略).....
Eltorito defaultboot header:
Bootid 88 (bootable)
Boot media 0 (No Emulation Boot)
Load segment 0
Sys type 0
Nsect 4
# 2\. 開始掛載這片光盤到 /mnt ,并且將所有數據完整復制到 /srv/newcd 目錄去喔
[root@study ~]# mount /home/CentOS-7-x86_64-Minimal-1503-01.iso /mnt
[root@study ~]# mkdir /srv/newcd
[root@study ~]# rsync -a /mnt/ /srv/newcd
[root@study ~]# ll /srv/newcd/
-rw-r--r--. 1 root root 16 Apr 1 07:11 CentOS_BuildTag
drwxr-xr-x. 3 root root 33 Mar 28 06:34 EFI
-rw-r--r--. 1 root root 215 Mar 28 06:36 EULA
-rw-r--r--. 1 root root 18009 Mar 28 06:36 GPL
drwxr-xr-x. 3 root root 54 Mar 28 06:34 images
drwxr-xr-x. 2 root root 4096 Mar 28 06:34 isolinux
drwxr-xr-x. 2 root root 41 Mar 28 06:34 LiveOS
drwxr-xr-x. 2 root root 20480 Apr 1 07:11 Packages
drwxr-xr-x. 2 root root 4096 Apr 1 07:11 repodata
-rw-r--r--. 1 root root 1690 Mar 28 06:36 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1 root root 1690 Mar 28 06:36 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 Apr 1 07:15 TRANS.TBL
# rsync 可以完整的復制所有的權限屬性等數據,也能夠進行鏡像處理!相當好用的指令喔!
# 這里先了解一下即可。現在 newcd/ 目錄內已經是完整的鏡像文件內容!
# 3\. 假設已經處理完畢你在 /srv/newcd 里面所要進行的各項修改行為,準備創建 ISO 檔!
[root@study ~]# ll /srv/newcd/isolinux/
-r--r--r--. 1 root root 2048 Apr 1 07:15 boot.cat # 開機的型號數據等等
-rw-r--r--. 1 root root 84 Mar 28 06:34 boot.msg
-rw-r--r--. 1 root root 281 Mar 28 06:34 grub.conf
-rw-r--r--. 1 root root 35745476 Mar 28 06:31 initrd.img
-rw-r--r--. 1 root root 24576 Mar 28 06:38 isolinux.bin # 相當于開機管理程序
-rw-r--r--. 1 root root 3032 Mar 28 06:34 isolinux.cfg
-rw-r--r--. 1 root root 176500 Sep 11 2014 memtest
-rw-r--r--. 1 root root 186 Jul 2 2014 splash.png
-r--r--r--. 1 root root 2438 Apr 1 07:15 TRANS.TBL
-rw-r--r--. 1 root root 33997348 Mar 28 06:33 upgrade.img
-rw-r--r--. 1 root root 153104 Mar 6 13:46 vesamenu.c32
-rwxr-xr-x. 1 root root 5029136 Mar 6 19:45 vmlinuz # Linux 核心文件
[root@study ~]# cd /srv/newcd
[root@study newcd]# mkisofs -o /custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
> -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T .
```
此時你就有一個 /custom.img 的文件存在,可以將該光盤燒錄出來啰!就這么簡單!
### 8.5.2 cdrecord:光盤燒錄工具
新版的 CentOS 7 使用的是 wodim 這個文字界面指令來進行燒錄的行為。不過為了相容于舊版的 cdrecord 這個指令, 因此 wodim 也有鏈接到 cdrecord 就是了!因此,你還是可以使用 cdrecord 這個指令。不過,鳥哥建議還是改用 wodim 比較干脆! 這個指令常見的選項有下面數個:
```
[root@study ~]# wodim --devices dev=/dev/sr0... <==查詢燒錄機的 BUS 位置
[root@study ~]# wodim -v dev=/dev/sr0 blank=[fast|all] <==抹除重復讀寫片
[root@study ~]# wodim -v dev=/dev/sr0 -format <==格式化DVD+RW
[root@study ~]# wodim -v dev=/dev/sr0 [可用選項功能] file.iso
選項與參數:
--devices :用在掃瞄磁盤總線并找出可用的燒錄機,后續的設備為 ATA 接口
-v :在 cdrecord 運行的過程中,顯示過程而已。
dev=/dev/sr0 :可以找出此光驅的 bus 位址,非常重要!
blank=[fast|all]:blank 為抹除可重復寫入的CD/DVD-RW,使用fast較快,all較完整
-format :對光盤片進行格式化,但是僅針對 DVD+RW 這種格式的 DVD 而已;
[可用選項功能] 主要是寫入 CD/DVD 時可使用的選項,常見的選項包括有:
-data :指定后面的文件以數據格式寫入,不是以 CD 音軌(-audio)方式寫入!
speed=X :指定燒錄速度,例如CD可用 speed=40 為40倍數,DVD則可用 speed=4 之類
-eject :指定燒錄完畢后自動退出光盤
fs=Ym :指定多少緩沖內存,可用在將鏡像文件先暫存至緩沖內存。默認為 4m,
一般建議可增加到 8m ,不過,還是得視你的燒錄機而定。
針對 DVD 的選項功能:
driveropts=burnfree :打開 Buffer Underrun Free 模式的寫入功能
-sao :支持 DVD-RW 的格式
```
* 偵測你的燒錄機所在位置:
文字模式的燒錄確實是比較麻煩的,因為沒有所見即所得的環境嘛!要燒錄首先就得要找到燒錄機才行! 而由于早期的燒錄機都是使用 SCSI 接口,因此查詢燒錄機的方法就得要配合著 SCSI 接口的認定來處理了。 查詢燒錄機的方式為:
```
[root@study ~]# ll /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Jun 26 22:14 /dev/sr0 # 一般 Linux 光驅文件名!
[root@study ~]# wodim --devices dev=/dev/sr0
-------------------------------------------------------------------------
0 dev='/dev/sr0' rwrw-- : 'QEMU' 'QEMU DVD-ROM'
-------------------------------------------------------------------------
[root@demo ~]# wodim --devices dev=/dev/sr0
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0 dev='/dev/sr0' rwrw-- : 'ASUS' 'DRW-24D1ST'
-------------------------------------------------------------------------
# 你可以發現到其實鳥哥做了兩個測試!上面的那部主機系統是虛擬機,當然光驅也是仿真的,沒法用。
# 因此在這里與下面的 wodim 用法,鳥哥只能使用另一部 Demo 機器測試給大家看了!
```
因為上面那部機器是虛擬機內的虛擬光驅 (QEMU DVD-ROM),那個無法塞入真正的光盤片啦!真討厭~所以鳥哥只好找另一部實體 CentOS 7 的主機系統來測試。 因此你可以看到下面那部使用的就是正統的 ASUS 光驅了!這樣會查閱了嗎?注意喔,一定要有 dev=/dev/xxx 那一段,不然系統會告訴你找不到光盤! 這真的是很奇怪!不過,反正我們知道光驅的文件名為 /dev/sr0 之類的,直接帶入即可。
* 進行 CD/DVD 的燒錄動作:
好了,那么現在要如何將 /tmp/system.img 燒錄到 CD/DVD 里面去呢?因為要節省空間與避免浪費,鳥哥拿之前多買的可重復讀寫的 DVD 四倍數 DVD 片來操作! 因為是可抹除的 DVD,因此可能得要在燒錄前先抹除 DVD 片里面的數據才行喔!
```
# 0\. 先抹除光盤的原始內容:(非可重復讀寫則可略過此步驟)
[root@demo ~]# wodim -v dev=/dev/sr0 blank=fast
# 中間會跑出一堆訊息告訴你抹除的進度,而且會有 10 秒鐘的時間等待你的取消!
# 1\. 開始燒錄:
[root@demo ~]# wodim -v dev=/dev/sr0 speed=4 -dummy -eject /tmp/system.img
....(前面省略)....
Waiting for reader process to fill input buffer ... input buffer ready.
Starting new track at sector: 0
Track 01: 86 of 86 MB written (fifo 100%) [buf 97%] 4.0x. # 這里有流程時間!
Track 01: Total Bytes read/written: 90937344/90937344 (44403 sectors).
Writing time: 38.337s # 寫入的總時間
Average write speed 1.7x. # 換算下來的寫入時間
Min drive buffer fill was 97%
Fixating...
Fixating time: 120.943s
wodim: fifo had 1433 puts and 1433 gets.
wodim: fifo was 0 times empty and 777 times full, min fill was 89%.
# 因為有加上 -eject 這個選項的緣故,因此燒錄完成后,DVD 會被退出光驅喔!記得推回去!
# 2\. 燒錄完畢后,測試掛載一下,檢驗內容:
[root@demo ~]# mount /dev/sr0/mnt
[root@demo ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
Filesystem Size Used Avail Use% Mounted on
/dev/sr0 87M 87M 0 100% /mnt
[root@demo ~]# ll /mnt
dr-xr-xr-x. 135 root root 36864 Jun 30 04:00 etc
dr-xr-xr-x. 19 root root 8192 Jul 2 13:16 root
[root@demo ~]# umount /mnt <==不要忘了卸載
```
基本上,光盤燒錄的指令越來越簡單,雖然有很多的參數可以使用,不過,鳥哥認為,學習上面的語法就很足夠了! 一般來說,如果有燒錄的需求,大多還是使用圖形界面的軟件來處理比較妥當~使用文字界面的燒錄,真的大部分都是燒錄數據光盤較多。 因此,上面的語法已經足夠工程師的使用啰!
如果你的 Linux 是用來做為服務器之用的話,那么無時無刻的去想“如何備份重要數據”是相當重要的! 關于備份我們會在第五篇再仔細的談一談,這里你要會使用這些工具即可!
- 鳥哥的Linux私房菜:基礎學習篇 第四版
- 目錄及概述
- 第零章、計算機概論
- 0.1 電腦:輔助人腦的好工具
- 0.2 個人電腦架構與相關設備元件
- 0.3 數據表示方式
- 0.4 軟件程序運行
- 0.5 重點回顧
- 0.6 本章習題
- 0.7 參考資料與延伸閱讀
- 第一章、Linux是什么與如何學習
- 1.1 Linux是什么
- 1.2 Torvalds的Linux發展
- 1.3 Linux當前應用的角色
- 1.4 Linux 該如何學習
- 1.5 重點回顧
- 1.6 本章習題
- 1.7 參考資料與延伸閱讀
- 第二章、主機規劃與磁盤分區
- 2.1 Linux與硬件的搭配
- 2.2 磁盤分區
- 2.3 安裝Linux前的規劃
- 2.4 重點回顧
- 2.5 本章習題
- 2.6 參考資料與延伸閱讀
- 第三章、安裝 CentOS7.x
- 3.1 本練習機的規劃--尤其是分區參數
- 3.2 開始安裝CentOS 7
- 3.3 多重開機安裝流程與管理(Option)
- 3.4 重點回顧
- 3.5 本章習題
- 3.6 參考資料與延伸閱讀
- 第四章、首次登陸與線上求助
- 4.1 首次登陸系統
- 4.2 文字模式下指令的下達
- 4.3 Linux系統的線上求助man page與info page
- 4.4 超簡單文書編輯器: nano
- 4.5 正確的關機方法
- 4.6 重點回顧
- 4.7 本章習題
- 4.8 參考資料與延伸閱讀
- 第五章、Linux 的文件權限與目錄配置
- 5.1 使用者與群組
- 5.2 Linux 文件權限概念
- 5.3 Linux目錄配置
- 5.4 重點回顧
- 5.5 本章練習
- 5.6 參考資料與延伸閱讀
- 第六章、Linux 文件與目錄管理
- 6.1 目錄與路徑
- 6.2 文件與目錄管理
- 6.3 文件內容查閱
- 6.4 文件與目錄的默認權限與隱藏權限
- 6.5 指令與文件的搜尋
- 6.6 極重要的復習!權限與指令間的關系
- 6.7 重點回顧
- 6.8 本章習題:
- 6.9 參考資料與延伸閱讀
- 第七章、Linux 磁盤與文件系統管理
- 7.1 認識 Linux 文件系統
- 7.2 文件系統的簡單操作
- 7.3 磁盤的分區、格式化、檢驗與掛載
- 7.4 設置開機掛載
- 7.5 內存交換空間(swap)之創建
- 7.6 文件系統的特殊觀察與操作
- 7.7 重點回顧
- 7.8 本章習題 - 第一題一定要做
- 7.9 參考資料與延伸閱讀
- 第八章、文件與文件系統的壓縮,打包與備份
- 8.1 壓縮文件的用途與技術
- 8.2 Linux 系統常見的壓縮指令
- 8.3 打包指令: tar
- 8.4 XFS 文件系統的備份與還原
- 8.5 光盤寫入工具
- 8.6 其他常見的壓縮與備份工具
- 8.7 重點回顧
- 8.8 本章習題
- 8.9 參考資料與延伸閱讀
- 第九章、vim 程序編輯器
- 9.1 vi 與 vim
- 9.2 vi 的使用
- 9.3 vim 的額外功能
- 9.4 其他 vim 使用注意事項
- 9.5 重點回顧
- 9.6 本章練習
- 9.7 參考資料與延伸閱讀
- 第十章、認識與學習BASH
- 10.1 認識 BASH 這個 Shell
- 10.2 Shell 的變量功能
- 10.3 命令別名與歷史命令
- 10.4 Bash Shell 的操作環境:
- 10.5 數據流重導向
- 10.6 管線命令 (pipe)
- 10.7 重點回顧
- 10.8 本章習題
- 10.9 參考資料與延伸閱讀
- 第十一章、正則表達式與文件格式化處理
- 11.1 開始之前:什么是正則表達式
- 11.2 基礎正則表達式
- 11.3 延伸正則表達式
- 11.4 文件的格式化與相關處理
- 11.5 重點回顧
- 11.6 本章習題
- 11.7 參考資料與延伸閱讀
- 第十二章、學習 Shell Scripts
- 12.1 什么是 Shell scripts
- 12.2 簡單的 shell script 練習
- 12.3 善用判斷式
- 12.4 條件判斷式
- 12.5 循環 (loop)
- 12.6 shell script 的追蹤與 debug
- 12.7 重點回顧
- 12.8 本章習題
- 第十三章、Linux 帳號管理與 ACL 權限設置
- 13.1 Linux 的帳號與群組
- 13.2 帳號管理
- 13.3 主機的細部權限規劃:ACL 的使用
- 13.4 使用者身份切換
- 13.5 使用者的特殊 shell 與 PAM 模塊
- 13.6 Linux 主機上的使用者訊息傳遞
- 13.7 CentOS 7 環境下大量創建帳號的方法
- 13.8 重點回顧
- 13.9 本章習題
- 13.10 參考資料與延伸閱讀
- 第十四章、磁盤配額(Quota)與進階文件系統管理
- 14.1 磁盤配額 (Quota) 的應用與實作
- 14.2 軟件磁盤陣列 (Software RAID)
- 14.3 邏輯卷軸管理員 (Logical Volume Manager)
- 14.4 重點回顧
- 14.5 本章習題
- 14.6 參考資料與延伸閱讀
- 第十五章、例行性工作調度(crontab)
- 15.1 什么是例行性工作調度
- 15.2 僅執行一次的工作調度
- 15.3 循環執行的例行性工作調度
- 15.4 可喚醒停機期間的工作任務
- 15.5 重點回顧
- 15.6 本章習題
- 第十六章、程序管理與 SELinux 初探
- 16.1 什么是程序 (process)
- 16.2 工作管理 (job control)
- 16.3 程序管理
- 16.4 特殊文件與程序
- 16.5 SELinux 初探
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考資料與延伸閱讀
- 第十七章、認識系統服務 (daemons)
- 17.1 什么是 daemon 與服務 (service)
- 17.2 通過 systemctl 管理服務
- 17.3 systemctl 針對 service 類型的配置文件
- 17.4 systemctl 針對 timer 的配置文件
- 17.5 CentOS 7.x 默認啟動的服務簡易說明
- 17.6 重點回顧
- 17.7 本章習題
- 17.8 參考資料與延伸閱讀
- 第十八章、認識與分析登錄文件
- 18.1 什么是登錄文件
- 18.2 rsyslog.service :記錄登錄文件的服務
- 18.3 登錄文件的輪替(logrotate)
- 18.4 systemd-journald.service 簡介
- 18.5 分析登錄文件
- 18.6 重點回顧
- 18.7 本章習題
- 18.8 參考資料與延伸閱讀
- 第十九章、開機流程、模塊管理與 Loader
- 19.1 Linux 的開機流程分析
- 19.2 核心與核心模塊
- 19.3 Boot Loader: Grub2
- 19.4 開機過程的問題解決
- 19.5 重點回顧
- 19.6 本章習題
- 19.7 參考資料與延伸閱讀
- 第二十章、基礎系統設置與備份策略
- 20.1 系統基本設置
- 20.2 服務器硬件數據的收集
- 20.3 備份要點
- 20.4 備份的種類、頻率與工具的選擇
- 20.5 鳥哥的備份策略
- 20.6 災難復原的考慮
- 20.7 重點回顧
- 20.8 本章習題
- 20.9 參考資料與延伸閱讀
- 第二十一章、軟件安裝:源代碼與 Tarball
- 20.1 開放源碼的軟件安裝與升級簡介
- 21.2 使用傳統程序語言進行編譯的簡單范例
- 21.3 用 make 進行宏編譯
- 21.4 Tarball 的管理與建議
- 21.5 函數庫管理
- 21.6 檢驗軟件正確性
- 21.7 重點回顧
- 21.8 本章習題
- 21.9 參考資料與延伸閱讀
- 第二十二章、軟件安裝 RPM, SRPM 與 YUM
- 22.1 軟件管理員簡介
- 22.2 RPM 軟件管理程序: rpm
- 22.3 YUM 線上升級機制
- 22.4 SRPM 的使用 : rpmbuild (Optional)
- 22.5 重點回顧
- 22.6 本章習題
- 22.7 參考資料與延伸閱讀
- 第二十三章、X Window 設置介紹
- 23.1 什么是 X Window System
- 23.2 X Server 配置文件解析與設置
- 23.3 顯卡驅動程序安裝范例
- 23.4 重點回顧
- 23.5 本章習題
- 23.6 參考資料與延伸閱讀
- 第二十四章、Linux 核心編譯與管理
- 24.1 編譯前的任務:認識核心與取得核心源代碼
- 24.2 核心編譯的前處理與核心功能選擇
- 24.3 核心的編譯與安裝
- 24.4 額外(單一)核心模塊編譯
- 24.5 以最新核心版本編譯 CentOS 7.x 的核心
- 24.6 重點回顧
- 24.7 本章習題
- 24.8 參考資料與延伸閱讀