|
|
楼主 |
发表于 2021-3-12 20:59:54
|
显示全部楼层
ISO 文件:5 P% x' X. x+ n) U( C
9 j$ ~3 o9 W, l- D/ G
因为文件系统的关系,就不能用 dd 来直接做 ISO 镜像了(当然,它还是可以从设备制作 ISO 镜像)。 ISO 文件的制作有专用工具,, s& E/ a) w- o( a$ Q0 t
$ W& T! ]2 T/ }! o 1,制作
* ^5 M0 \% D' V, w% Q, X* a+ J9 z& t
$ A' K9 K6 j6 g$ v mkisofs -r -o cdimage.iso /home/XXX/cddir/ k0 O4 Q0 F5 n5 X) p/ L
$ Z* [+ H" Z3 o5 H& W, W
2,格式化
( Z7 s/ x& Z. j& B, w/ R2 G9 g8 v/ c7 _8 g
用mkiso制作的 iso 已有文件系统 iso9660
+ d) ?+ [% Z5 S3 b% A1 b/ u3 t8 y$ V
3,可启动* p2 b$ [) N/ F l3 f* x D
0 L, O- z' x+ l% b% F 无论是引导单系统还是引导多系统都还是用 mkisofs 这个工具,只是加载到光盘的 boot loader 不一样而已。当然也可以将 DOS 的引导器 (也就是它的引导扇区) 或 windows 的引导器 ( XP 系统的是 ntldr ) 放入让光盘引导。下面只讨论 grub4dos 的使用
. G N7 e. o1 V( ~4 C
2 e. S# {" I2 x( X 1),用 grub.exe 引导多系统. a/ W# N2 s3 d- r+ a. O% `
/ P, P& I g& V9 [
用 DOS 加载 grub.exe 引导多系统1 s2 u! y- N3 T# t, X: E, k6 @
; B- ~6 C1 m; f+ M% b( V
2),将 grub 安装到光盘 MBR+ T6 J2 q l, K4 |
* P) S0 j; b9 M- X 在制作时可用下面的命令直接生成可启动镜像,其中 grldr, menu.lst 要放在 cddir 目录下,也就是在 cd 根目录。
0 m; }) Z" o5 M% l' w9 x3 H' P+ f2 t" q/ U/ [
mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o cdimage.iso cddir: A2 J' X% s" }) x$ R# m; v: v, N
8 N" A: H. b9 \& Z8 q
mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o cdimage.iso cddir- y4 g( _3 k* O( d! D& V
9 n" L- t7 I: r4 u! h. ^, V B
PS,下面给出 dd 命令和 mkisofs 参数说明
1 M& P$ c) D1 p6 F' H# s+ w8 Q% j4 f3 M
dd (convert and copy files)# C) G3 k2 e& R* \! u
5 Q# j6 F4 g8 e9 a7 r( C( g1 L dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
( `% ]/ X" U+ C
& S* @7 q+ h/ b6 A/ ` dd 的主要选项:
5 g; ^( l6 c: J# a( m
* d7 x4 C( p+ {7 u8 \ 指定数字的地方若以下列字符结尾乘以相应的数字:
# q4 b- W! h) r1 _, c9 y" C: Q
$ x# ~$ Z5 W6 h4 i' e b=512, c=1, k=1024, w=2, xm=number m
/ \: j& x2 i5 J. n
( ]( W& v$ J% O if=file( i p+ r/ P$ }2 ~( o9 K
# _' J( G+ x9 W, F
输入文件名,缺省为标准输入。) K: F6 ~/ ?: s3 G! ]9 l
, U) S7 H4 }" G of=file, S$ ^: ~0 ?+ k, h
- c5 _9 o. |( G6 ?3 B3 m: e) s2 C
输出文件名,缺省为标准输出。( Q9 i) D/ m' Y) i9 a- z' ~ d8 }
/ q$ Y9 o1 r W) z3 k) S: X% I ibs=bytes# L4 u5 K( e& r8 \; K$ c9 f
; g! O& y" S k; { 一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
2 ~. c4 M1 z. L8 z
+ u+ E1 Y) k5 F( ` |; }: b obs=bytes1 ^" c) T+ `; ^8 f: m
l- J( X4 w$ W, Y 一次写 bytes 个字节(即一个块大小为 bytes 个字节)。5 i5 T5 T7 i) m; a7 N5 T
# l, X5 O3 Y) k$ ?
bs=bytes) f- d- Y! b* ^7 }7 d" D6 a, Y
) }( [4 f/ j7 v/ Y' [
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。+ z+ C7 Q8 j; j, y6 _2 g
9 h/ z) L' P4 x* c cbs=bytes
* Z# D5 h( b& Q8 T0 D( U) x) w) ~9 b# g$ r7 R$ A& X
一次转换 bytes 个字节,即转换缓冲区大小。5 W, j) g5 N& ^0 N/ d9 T$ C+ w: M
7 @4 i" z) _0 V. J
skip=blocks
& T$ G4 B+ W* V( I8 N/ k& d4 ~3 A+ ~6 z! ]/ d
从输入文件开头跳过 blocks 个块后再开始复制。 |
|