這一節主要介紹iso鏡像製作過程,主要包含兩部分
mkisofs:創建鏡像文件
光盤燒錄工具
如果終端沒有mkisofs指令,需要下載一下,例如ubuntu14.04
apt-get install genisoimage
其他linux系統網上搜一下,教程很多
創建鏡像文件指令:mkisofs
mkisofs(make iso file system):指令有兩種用法,如果你不是用來安裝系統那麼可以隨意一些,類似於文件打包一樣,只不過是用的mkisofs指令,生成的是iso文件.還有一種比較重要的用法相信大家或多或少都接觸過,那就是重裝系統,系統iso製作相對嚴格一些,下面就這兩種用法介紹一下
製作一般的鏡像文件
root@ubuntu:~# mkisofs [-o 鏡像文件] [-Jrv] [-V vol] [-m file] 待制作文件 -graft-point isodir=systemdir
mkisofs選項與參數:
-o :自定義的鏡像文件名
-J :產生較相容於 windows 機器的文件名結構,可增加文件名長度到 64 個 unicode 字符
-r :通過 Rock Ridge 產生支持 Unix/Linux 的文件數據,可記錄較多的信息(如 UID/GID等) ;
-v :顯示創建 ISO文件的過程
-V vol :類似於標記信息
-m file :-m 為排除文件 (exclude) 的意思,後面的文件不備份到鏡像文件中,支持萬用字符
-graft-point:待制作文件於生成後的iso鏡像文件目錄映射關係
-r參數可以比較完整的記錄需要備份的文件信息(包括UID/GID與權限),所以儘量帶上,除此之外,mkisofs指令默認是把所有的待制作文件到放到同一個目錄下面,例如,我要把/etc,/home目錄下的文件製作iso文件,默認情況下,製作好的iso文件是沒有/etc /home目錄的,而是把/etc,/home目錄下的文件統統放到根目錄下
root@ubuntu:~# mkisofs -r -v -o /tmp/test.iso -V "test iso" /etc /home
圖很長只截取一部分,下面我們看一下這個iso文件是怎麼樣的
root@ubuntu:~# mount -o loop /tmp/test.iso /mnt (這個命令忘記了可以參考我的另一篇文章)
先解掛 umount /mnt
如果想指定目錄存放文件,可以使用-graft-point選項,做待備份文件與鏡像文件的映射,-graft-point用法
鏡像目錄=實際需要備份的目錄
/iso/etc=/etc
/iso/home=/home
上一個例子再次製作一遍
root@ubuntu:~# mkisofs -r -v -o /tmp/test1.iso -V "test iso once" -graft-point /iso/etc=/etc /iso/home=/home
iso是自定義的文件名,這樣一看是不是舒服多了,瞬間治癒了多年的強迫症!
以上是製作一般的鏡像文件,如果要製作裝系統用的iso又該如何做呢
製作裝系統用的iso
首先你得有一個純淨版的iso鏡像,我準備的是ubuntu-14.04.1-server-amd64.iso
首先對次iso進行掛載
root@ubuntu:~# mount ubuntu-14.04.1-server-amd64.iso /mnt
mount: block device /root/ubuntu-14.04.1-server-amd64.iso is write-protected, mounting read-only
iso鏡像文件掛載出來的文件都是隻讀模式,無法修改,怎麼辦呢
root@ubuntu:~# mkdir /tmp/my_iso
root@ubuntu:~# rsync -a /mnt/* /tmp/my_iso/
root@ubuntu:/tmp/my_iso# mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/boot.cat -o /media/my_iso.iso -joliet-long ./
光盤燒錄工具
至於光盤燒錄工具命令行可以實現,客戶端也可以實現,目前大多使用客戶端,簡單方便不易出錯,這裡介紹幾個客戶端
ubuntu:usb-creator-gtk
windows:UltraIso軟件
終端命令行工具(支持ubuntu,centos):wodim指令
閱讀更多 Python小飛豬 的文章