<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 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] 待備份文件... \ &gt; -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 \ &gt; -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 \ &gt; -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... &lt;==查詢燒錄機的 BUS 位置 [root@study ~]# wodim -v dev=/dev/sr0 blank=[fast&#124;all] &lt;==抹除重復讀寫片 [root@study ~]# wodim -v dev=/dev/sr0 -format &lt;==格式化DVD+RW [root@study ~]# wodim -v dev=/dev/sr0 [可用選項功能] file.iso 選項與參數: --devices :用在掃瞄磁盤總線并找出可用的燒錄機,后續的設備為 ATA 接口 -v :在 cdrecord 運行的過程中,顯示過程而已。 dev=/dev/sr0 :可以找出此光驅的 bus 位址,非常重要! blank=[fast&#124;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 &lt;==不要忘了卸載 ``` 基本上,光盤燒錄的指令越來越簡單,雖然有很多的參數可以使用,不過,鳥哥認為,學習上面的語法就很足夠了! 一般來說,如果有燒錄的需求,大多還是使用圖形界面的軟件來處理比較妥當~使用文字界面的燒錄,真的大部分都是燒錄數據光盤較多。 因此,上面的語法已經足夠工程師的使用啰! 如果你的 Linux 是用來做為服務器之用的話,那么無時無刻的去想“如何備份重要數據”是相當重要的! 關于備份我們會在第五篇再仔細的談一談,這里你要會使用這些工具即可!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看