|
|
楼主 |
发表于 2021-3-12 20:59:54
|
显示全部楼层
ISO 文件:7 z7 @2 W0 C8 z3 w9 u9 k
" N: o( R( o; Z! J' ~5 ?2 s
因为文件系统的关系,就不能用 dd 来直接做 ISO 镜像了(当然,它还是可以从设备制作 ISO 镜像)。 ISO 文件的制作有专用工具,
5 R5 k- b# w+ X6 k' ^" F8 q& W; i4 V" h9 Z0 e- _
1,制作
2 [' P4 v: H( ?% P; ]* r3 G: j4 a a
mkisofs -r -o cdimage.iso /home/XXX/cddir1 y$ @; C+ l0 g" u2 Z9 R8 `
# S( U, b7 c* q5 I 2,格式化
a, u; z* ?0 U, K0 m2 m* _5 z! e7 B% a
用mkiso制作的 iso 已有文件系统 iso9660: [+ y1 f: |$ o' P. t, j
2 L4 c+ a6 a, k 3,可启动
7 K) l7 V' O3 l$ _# ?9 C; _: g4 Z$ @( M- P
无论是引导单系统还是引导多系统都还是用 mkisofs 这个工具,只是加载到光盘的 boot loader 不一样而已。当然也可以将 DOS 的引导器 (也就是它的引导扇区) 或 windows 的引导器 ( XP 系统的是 ntldr ) 放入让光盘引导。下面只讨论 grub4dos 的使用 F' P! h- S7 V6 S
0 {" }6 ~ N1 ? 1),用 grub.exe 引导多系统
1 g3 N) A" R! y J% |( P& z6 b4 q" T; m& f6 q
用 DOS 加载 grub.exe 引导多系统
/ d( Z/ z" @+ [: V5 g, m* E! ~# W4 b6 ?' G, w2 g
2),将 grub 安装到光盘 MBR4 _( V0 y) O- M
* M9 g' z( y3 A( @2 l8 X8 ]
在制作时可用下面的命令直接生成可启动镜像,其中 grldr, menu.lst 要放在 cddir 目录下,也就是在 cd 根目录。
! X# i: _" y! I0 k9 v3 [
3 H$ e F1 f: r, p; D+ j! ?' `" Z mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o cdimage.iso cddir
9 I- O$ g5 l5 x, E
3 u4 C& T4 l V J mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o cdimage.iso cddir
, d' a+ h+ _) l% K8 F0 c& M
" W' Q' C8 h' k/ P1 v/ R PS,下面给出 dd 命令和 mkisofs 参数说明, @8 y. L! E& J# v! a a
: H1 L- s& U6 l l* ~: @ dd (convert and copy files)* J+ L* B* H4 X! z2 o
! O( s" M$ F( |' ^8 M6 ?( D6 g. N dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
3 _1 c% b P* ]/ J
# o3 O9 w8 d4 O# a1 q dd 的主要选项:8 {( K9 F$ {* t7 n& w( k
) q# i' C# m/ I0 `- u/ V: F
指定数字的地方若以下列字符结尾乘以相应的数字:
6 J! d$ V. A, o) j! {# M6 ~1 O0 O! Y# d, Z0 _; p4 n( P# [
b=512, c=1, k=1024, w=2, xm=number m& T) k- S9 e+ g6 y
0 o2 j0 T# f: c9 {$ h$ D5 T2 e
if=file% `6 F% u! W, V* s1 D
5 w6 N2 i4 o( z
输入文件名,缺省为标准输入。
/ }% P1 N( |% {( U+ Y+ x% m+ N0 P5 Z1 p: y. q
of=file" b; o& U) y0 _! G6 W T$ y/ E. h
2 Y, `. z* P" t( r
输出文件名,缺省为标准输出。, `) Y4 \/ M/ h$ T& M2 O( [
" r% m' U- d7 d! U$ S
ibs=bytes2 N3 n L9 s( N4 y# c( j; o
1 @ s* d8 S ~7 N) ^+ @% X
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
; j( p0 R& |7 J; n# P) A; |
$ S: r' Q! l$ N3 t n obs=bytes
5 H+ H+ L, }0 F$ ?/ o' }3 s; {/ o4 J; ]" T( |2 _! i. e
一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
& s, ]; K- b4 }
2 P- \; y" Z+ ?# ]4 A. a: m9 o- f bs=bytes' w' v" Q( |% l k9 u
/ e3 t) f3 h* z( ~3 \3 x
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
6 m" ?2 K8 W8 \0 T$ B% J8 u; C* x" j5 B0 ]4 Y
cbs=bytes6 E; L: ?1 P; {& A5 Q
$ x) C5 Z. u3 {+ D
一次转换 bytes 个字节,即转换缓冲区大小。
6 N# l. ?+ Z( H) o# I7 M. l' U
: W* q2 g, v( x) |" w skip=blocks* j6 X- e2 x. ?# g2 t) Y V
, {! Y# [5 D$ _/ T1 C
从输入文件开头跳过 blocks 个块后再开始复制。 |
|