`
film
  • 浏览: 225654 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从硬盘启动的Linux 0.11-devel系统 中文版权所有: OldLinux论坛

 
阅读更多

©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  TP
很多人想从硬盘Image文件直接能引导启动Linux 0.11系统. 我用shoelace做了一个可启动的硬盘Image文件包: linux-0.11-devel-040923.zip

内核代码发展的论坛。  Uga
shoelace.tar.z可以从Linux.old/bin-src/中下载. 该软件相当于Linux 的LILO或Grub引导系统.它原来是MINIX系统的硬盘引导系统.后来于1992年1月份被移植到Linux上.有关硬盘引导程序shoelace(或grub, Lilo等)原理请参考其它资料,例如boot-HOWTO等。Jn
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  `Xq14
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  V(
shoelace软件包主要包括以下几个程序,并需要按照以下方式放置:c
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  d[ 8
/etc/laceupL(J$W|
/etc/bootlacex}`$
/etc/winiboot8kU
/etc/config3Q0f
/etc/disktab]t7]
/shoelacelh
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  _;,T
除了/etc/config文件需要修改,其他文件一般均不需要改动. 只需修改config文件中boot: 一行上的内容,将其指向系统bootimage文件所在的路径位置,即内核源代码编译出的Image文件,通常其路径名是/usr/src/linux/Images
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  dMnM
假如我们需要从硬盘的第1个分区启动,那么执行以下操作就可以完成shoelace的执行:.Uk
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  _=M
/etc/laceup /dev/hd1 wini%wf%zL
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  Q
如果需要修改硬盘的主引导扇区,让你可以选择使用哪个分区引导,那么你还需要执行:-8'$
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  wTEPLy
/etc/laceup -w 1 /dev/hd0kL
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  ++Zp;
其中"-w 1"表示默认选择第1个分区作为引导分区. p7g?VC
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  w51v
================x?M
碰到的问题和解决方法:KQ3
--------------------$T8F^
执行fdisk命令对硬盘Image文件进行分区操作时,如果你使用的是MINIX环境(例如本站提供的MINIX-1.5系统),并且没有出现任何疑问提示,那么通过上述操作这个hd image文件肯定能够被引导启动. 如果使用的是Linux 0.11上的fdisk,则不一定. 主要原因是MINIX的fdisk对分区的操作有些特别. 分区的参数需要进行一些特别选择才行. 由于网站上现有的Linux-0.11-devel-XXXX.zip中的hd image文件参数和分区与MINIX做出的有些不同,因此使用上面操作后硬盘并不能正常启动.因此最好重新建立一个hd映像文件,该硬盘映像文件的参数经过一些慎重选择, 然后在其上建立一个根文件系统.我实验选择出以下的参数可以从硬盘上正常引导:p
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  Pm$cs3
硬盘Image文件参数:z
cyl = 410, heads=16, secters=38]zH
硬盘大小=127MB左右.n(88+C
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  +1
分区设置为:zg
在MINIX系统下的显示值:{W6
fdisk -h16 -s38 /dev/hd5 |>x^'
----first---- -----last---- --------sectors------- Z
Num Sorted Active Type Cyl Head Sec Cyl Head Sec Base Last Size ?a"L
1 1 MINIX 0 0 3 203 15 38 2 124031 124030 `}d
2 2 MINIX 204 0 1 407 15 38 124032 248063 124032
3 3 None 0 0 0 0 0 0 0 0 0 NP0
4 4 None 0 0 0 0 0 0 0 0 0 dZ,*AA
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  .9
在Linux 0.11上的显示值:.S/rJ
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  c*
fdisk©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  JV
p©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  b$T}V
Command (m for help):e2OR-
Disk /dev/hd0: 0 heads, 0 sectors, 0 cylindersS
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  pGHC|
Device Boot Begin Start End Blocks Id Systemw,4w*
/dev/hd01 0 2 124031 62015 81 Linux/MINIX5ee6
/dev/hd02 0 124032 248063 62016 81 Linux/MINIX+Yv(
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  @i>,%
x©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  GEX8,
Command (m for help):|#*}nU
p©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  ac
Expert command (m for help):<"u
Disk /dev/hd0: 0 heads, 0 sectors, 0 cylinders]A/X|}
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  =L[
Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID_X0b
1 00 0 3 0 15 38 203 2 124030 81r
2 00 0 1 204 15 38 407 124032 124032 81*g+m
3 00 0 0 0 0 0 0 0 0 00Jg];
4 00 0 0 0 0 0 0 0 0 00tIie
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  ms)M
你可以在Linux系统下先建立一个zero值hd image文件hdc.img:)e
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  [_l98
dd if=/dev/zero of=hdc.img bs=512 count=248280[FB'v
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  )>
上面count是扇区数(=410 * 16 * 38). 然后按照上面参数建立分区.在把该硬盘Image文件mount到Linux 0.11系统后,直接cp -a 完全复制/目录即可.例如,如果新硬盘Image文件是被加载到了/mnt/目录上,那么执行:iE+
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  |R
cd /mnt/<e[M
cp -a /* .UU'
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  s1"%
最后会碰到的一个问题是需要给主引导扇区加上引导扇区标志(第511,512字节)0x55,0xAABTWA~L
我是使用UltraEdit编辑hdc.img加上的.kU*
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  ?Wwof
你可以先按照这里介绍的方式自己做做看,如果不行则可以在这里提问,或者等我upload已经做好的作为参考.%
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。  >
已经upload了。q*^

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics