|
|
楼主 |
发表于 2021-3-12 20:59:54
|
显示全部楼层
ISO 文件:: _2 ~, |* l" r
1 {' }, ^/ W* q9 C8 `
因为文件系统的关系,就不能用 dd 来直接做 ISO 镜像了(当然,它还是可以从设备制作 ISO 镜像)。 ISO 文件的制作有专用工具,) a3 _7 B0 f; u/ n. P+ i4 J# M
) x1 i' T% q* ^/ d8 z
1,制作* S( M; r& a v! p& s3 B
7 A& P( d' y! |8 b+ ~
mkisofs -r -o cdimage.iso /home/XXX/cddir
2 v! k2 a; T( z6 |, I* e
8 q2 ?4 n4 z. n H' p, u# Z4 d 2,格式化
L, C! x& |# r6 @$ T5 m w9 g$ N6 }. a5 `
用mkiso制作的 iso 已有文件系统 iso9660) L. }5 t' t- s2 I, a" g8 y4 N P! j
( Y7 ^& T* T/ z! U0 n2 D! I
3,可启动
6 y i8 U1 D- N; U( l! U% K) o2 H4 ]1 B0 C5 e
无论是引导单系统还是引导多系统都还是用 mkisofs 这个工具,只是加载到光盘的 boot loader 不一样而已。当然也可以将 DOS 的引导器 (也就是它的引导扇区) 或 windows 的引导器 ( XP 系统的是 ntldr ) 放入让光盘引导。下面只讨论 grub4dos 的使用0 g$ W" y8 T5 A. \
8 z/ ]5 M4 A# ] b: S0 D 1),用 grub.exe 引导多系统3 p) |4 r$ e4 H+ a1 |; F
6 e* {2 x. v3 W R
用 DOS 加载 grub.exe 引导多系统
- ?9 B' T C8 D8 f& A& y- ]5 ^- [2 O! ^2 n
2),将 grub 安装到光盘 MBR
: v) U" p: ^: T) k3 ?1 {# `: F' O2 R" O3 m2 r! j2 |
在制作时可用下面的命令直接生成可启动镜像,其中 grldr, menu.lst 要放在 cddir 目录下,也就是在 cd 根目录。1 H) {8 [. K3 |$ f' P/ \
+ A9 R% c9 r$ z6 i* w
mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o cdimage.iso cddir
2 G9 R- Y6 H9 n# d' t: ?; j2 g) R6 n8 J% U" ?4 m
mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o cdimage.iso cddir6 n) i. F. _$ _$ E6 }: E
5 ~: L& R: W9 g/ G# V0 H" G8 F
PS,下面给出 dd 命令和 mkisofs 参数说明" |; W7 l. Q$ {$ s2 s
# C8 b/ s/ \4 E F# O* ~
dd (convert and copy files)
4 r. Q& P$ t: t$ {* o* p7 f' y
6 }7 ?! s `+ n _- D dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
' Q. } b' z6 X0 n9 Q$ |0 ?% T( a# l' h. F5 l
dd 的主要选项:
& {. _' l8 J" ]5 u2 t* D: S9 }+ N% A8 `0 `0 ^8 I
指定数字的地方若以下列字符结尾乘以相应的数字:" n) }; T7 @2 }+ F( @1 `3 S
) P: O, s: e G/ }6 l
b=512, c=1, k=1024, w=2, xm=number m
$ d* k3 d4 b. x; R3 b- ]( W
1 i+ |$ k$ k3 D2 o: E7 } if=file
; L; T! {& W7 B& o9 G1 l7 B) ^
, G* M5 e9 m* u 输入文件名,缺省为标准输入。
% |# j4 U& C! w) o8 i: c! t; j% ~1 N! q+ P
of=file
- s) b: s' o% ]- h: T J
- ? Q7 `* F) ~: f3 }. k4 O" r+ | 输出文件名,缺省为标准输出。
# Z$ K$ V6 [/ N( ` R
2 c+ Y4 j3 L6 p q! p ibs=bytes5 ^# P9 `2 s' A5 T9 s o
, t+ G8 N! S' l1 k
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
. ~" F1 K. T6 o( Q4 N: x7 l2 J$ p! K$ a+ @
obs=bytes* t8 `: k5 N) }% R* O
/ |5 \5 U8 f9 ?) e, v3 r
一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
7 m6 J! o t$ l1 N3 q1 {6 j3 v, t* t1 [
bs=bytes
3 i7 S8 p+ W" s' ~0 c, E- E0 I; ~! G- x( ~! h5 Z6 Q
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。 r! `8 _& U8 {* q8 X: Y1 D; \& I% z
9 J/ w- c1 J( I- L
cbs=bytes7 g( s' i! x9 I% g
3 R, R8 b0 F6 U2 H2 }
一次转换 bytes 个字节,即转换缓冲区大小。' E1 h4 d/ l7 t( y. L7 z
% B: k Y3 s. W7 U
skip=blocks$ U2 F2 O/ g+ {' v+ `' J! @) |
) O" {! ?# C0 \2 u; Y2 n5 T2 [ 从输入文件开头跳过 blocks 个块后再开始复制。 |
|