img/iso文件是鏡像文件,在Linux系統操作中有時需要制作鏡像文件,那麼制作鏡像文件的方法有哪些呢?下面小編就給大家介紹下如何下Linux下制作可啟動img/iso文件。
制作鏡像文件有三種方法,cp, cat, dd 和其它專用工具。cp ,cat 和 dd都可以從設備復制文件來創建鏡像。而 dd 命令更為強大,可以通過指定塊大小,塊多少來直接創建鏡像。
IMG 文件:
因為cp, cat 只能從設備來制作鏡像,但又沒有專用工具來做 IMG 文件,故這裡用 dd 命令來制作 IMG 文件。
1,制作
dd if=/dev/zero of=fdimage.img count=2880
or
dd if=/dev/zero of=fdimage.img bs=1024 count=1440
2,格式化
mkfs.msdos fdimage.img
3,修改
可以用下面的命令 mount 後,可直接修改
mount -o loop *.img /mnt
4,可啟動
因為制作可啟動鏡像一定會用到虛擬機,推薦用 Virtualbox,先到網上下個 DOS 啟動盤來引導。用 DOS 的 sys 命令傳遞系統。推薦使用 FreeDOS,屬自由軟件。也可用 dd 命令 來傳遞引導引導信息,並復制啟動啟動時所需文件來做啟動盤。以 FreeDOS 為例,傳遞啟動信息用以下命令,其中下載的啟動盤為 balder10.img 文件
dd if=balder10.img of=fdimage.img bs=512 count=1 conv=notrunc
多系統用 grub4dos,
1),用 grub.exe 引導多系統
2),安裝 grub 到MBR,用 grldr 來引導多系統。當然也可用同上面一樣的辦法用 dd 直接寫入引導信息。
bootlace.com --floppy --chs 0x00
注:才發現用 dd 命令只能從邏輯扇區開始 copy,先前我想可否用 dd 來將 grldr.mbr 寫入 u 盤,我用自己的 U 盤試了,結果不能打開了。因為我的 U 盤為 fat16 格式,邏輯扇區開始是OBR,接著是FAT表,結果把 FAT1 表給蓋了,那時還沒有想到還有 FAT2 呢,就格了,現在想起來郁悶啊,好多東西都沒有了。
為什麼軟盤可以呢,因為它就沒有前面的63個扇區,直接從邏輯0扇區開始的。
ISO 文件:
因為文件系統的關系,就不能用 dd 來直接做 ISO 鏡像了(當然,它還是可以從設備制作 ISO 鏡像)。 ISO 文件的制作有專用工具,
1,制作
mkisofs -r -o cdimage.iso /home/XXX/cddir
2,格式化
用mkiso制作的 iso 已有文件系統 iso9660
3,可啟動
無論是引導單系統還是引導多系統都還是用 mkisofs 這個工具,只是加載到光盤的 boot loader 不一樣而已。當然也可以將 DOS 的引導器 (也就是它的引導扇區) 或 windows 的引導器 ( XP 系統的是 ntldr ) 放入讓光盤引導。下面只討論 grub4dos 的使用
1),用 grub.exe 引導多系統
用 DOS 加載 grub.exe 引導多系統
2),將 grub 安裝到光盤 MBR
在制作時可用下面的命令直接生成可啟動鏡像,其中 grldr, menu.lst 要放在 cddir 目錄下,也就是在 cd 根目錄。
mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o cdimage.iso cddir
mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o cdimage.iso cddir
PS,下面給出 dd 命令和 mkisofs 參數說明
dd (convert and copy files)
dd 是 Linux/UNIX 下的一個非常有用的命令,作用是用指定大小的塊拷貝一個文件,並在拷貝的同時進行指定的轉換。
dd 的主要選項:
指定數字的地方若以下列字符結尾乘以相應的數字:
b=512, c=1, k=1024, w=2, xm=number m
if=file
輸入文件名,缺省為標准輸入。
of=file
輸出文件名,缺省為標准輸出。
ibs=bytes
一次讀入 bytes 個字節(即一個塊大小為 bytes 個字節)。
obs=bytes
一次寫 bytes 個字節(即一個塊大小為 bytes 個字節)。
bs=bytes
同時設置讀寫塊的大小為 bytes ,可代替 ibs 和 obs 。
cbs=bytes
一次轉換 bytes 個字節,即轉換緩沖區大小。
skip=blocks
從輸入文件開頭跳過 blocks 個塊後再開始復制。
上一頁12下一頁共2頁
seek=blocks
從輸出文件開頭跳過 blocks 個塊後再開始復制。(通常只有當輸出文件是磁盤或磁帶時才有效)
count=blocks
僅拷貝 blocks 個塊,塊大小等於 ibs 指定的字節數。
conv=conversion[,conversion.。。]
用指定的參數轉換文件。
轉換參數:
ascii 轉換 EBCDIC 為 ASCII。
ebcdic 轉換 ASCII 為 EBCDIC。
ibm 轉換 ASCII 為 alternate EBCDIC.
block 把每一行轉換為長度為 cbs 的記錄,不足部分用空格填充。
unblock
使每一行的長度都為 cbs ,不足部分用空格填充。
lcase 把大寫字符轉換為小寫字符。
ucase 把小寫字符轉換為大寫字符。
swab 交換輸入的每對字節。 Unlike the
Unix dd, this works when an odd number of
bytes are read. If the input file contains
an odd number of bytes, the last byte is
simply copied (since there is nothing to
swap it with)。
noerror
出錯時不停止。
notrunc
不截短輸出文件。
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊。
由於 dd 命令允許二進制方式讀寫,所以特別適合在原始物理設備上進行輸入/輸出。例如可以用下面的命令為軟盤建立鏡像文件:
dd if=/dev/fd0 of=disk.img bs=1440k
有趣的是,這個鏡像文件能被 HD-Copy ,Winimage 等工具軟件讀出。再如把第一個硬盤的前 512 個字節存為一個文件:
dd if=/dev/hda of=disk.mbr bs=512 count=1
mkisofs (make iso file system)
功能說明:建立ISO 9660映像文件。
語 法:mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A《應用程序ID》][-abstract 《摘要文件》][-b 《開機映像文件》][-biblio ][-c《開機文件名稱》][-C 《盤區編號,磁區編號》][-copyright 《版權信息文件》][-hide《目錄或文件名》][-hide-joliet 《文件或目錄名》][-log-file 《記錄文件》][-m《目錄或文件名》][-M 《開機映像文件》][-o 《映像文件》][-p《數據處理人》][-P 《光盤發行人》][-sysid 《系統ID 》][-V 《光盤ID》][-volset 《卷冊集ID》][-volset-size 《光盤總數》][-volset-seqno《卷冊序號》][-x 《目錄》][目錄或文件]
補充說明:mkisofs可將指定的目錄與文件做成ISO 9660格式的映像文件,以供刻錄光盤。
參 數:
-a或--all mkisofs通常不處理備份文件。使用此參數可以把備份文件加到映像文件中。
-A《應用程序ID》或-appid《應用程序ID》 指定光盤的應用程序ID。
-abstract《摘要文件》 指定摘要文件的文件名。
-b《開機映像文件》或-eltorito-boot《開機映像文件》 指定在制作可開機光盤時所需的開機映像文件。
-biblio 指定ISBN文件的文件名,ISBN文件位於光盤根目錄下,記錄光盤的ISBN。
-c《開機文件名稱》 制作可開機光盤時,mkisofs會將開機映像文件中的全-eltorito-catalog《開機文件名稱》全部內容作成一個文件。
-C《盤區編號,盤區編號》 將許多節區合成一個映像文件時,必須使用此參數。
-copyright《版權信息文件》 指定版權信息文件的文件名。
-d或-omit-period 省略文件後的句號。
-D或-disable-deep-relocation ISO 9660最多只能處理8層的目錄,超過8層的部分,RRIP會自動將它們設置成ISO 9660兼容的格式。使用-D參數可關閉此功能。
-f或-follow-links 忽略符號連接。
-h 顯示幫助。
-hide《目錄或文件名》 使指定的目錄或文件在ISO 9660或Rock RidgeExtensions的系統中隱藏。
-hide-joliet《目錄或文件名》 使指定的目錄或文件在Joliet系統中隱藏。
-J或-joliet 使用Joliet格式的目錄與文件名稱。
-l或-full-iso9660-filenames 使用ISO 9660 32字符長度的文件名。
-L或-allow-leading-dots 允許文件名的第一個字符為句號