西西河

主题:【原创】我的Gentoo经历 -- 瓦斯

共:💬30 🌺69
全看分页树展 · 主题 跟帖
家园 【原创】创建一张linux启动软盘

网上有不少探讨如何在一张软盘上建立一个自成体系的最小的linux系统。需要把内核和根精简到最小程度,使得他们能够挤在一张小小的1.44M的软盘里面。本文要说的不是这个努力方向。

我这里说的是假设硬盘上已经有一个可登录的linux系统,由于重装微软视窗系统等原因导致linux没有启动的机会的情况。我们需要一个启动设备去启动硬盘上完好的根,登录硬盘上linux之后再修改硬盘的linux启动能力。

我们的策略不是在软盘上建立完整的linux系统,而是建立一个grub启动程序,让一张软盘能启动grub,有自己的多启动功能菜单,这样想启动xp就xp,想要linux就linux。这个方案对于一张软盘的容量来说绰绰有余,甚至还可以把内存检测程序mememtest86以及自建的一些背景图片装进去。看到你的多重启动菜单有DIY的图片作背景,也是很惬意的事情啊。

软盘是实现非本地硬盘启动的方法之一,其他方法还有光盘启动、usb设备启动等。目前支持usb设备启动的台式机已经很普遍了,可是笔记本主板支持usb启动的似乎没见到,只见到笔记本支持usb光盘启动的。

新的机器、新的gentoo linux内核,在默认的情况下已经不装软驱或软驱识别了。这里作为一个备用方法,还是值得写一下。即使新的台式机主板主要用sata硬盘了,同时一般还留有floppy、IDE的插槽,需要的时候可以自己接一个软驱来使用。

如果gentoo linux中无法挂载软驱,如在/dev中根本就没有/dev/fd0或/dev/floppy之类的块设备让你去挂载,一开始真是没有地方下手了。通常执行一下

modprobe floppy
就会在/dev中出现该有的设备名称了。

把一张软盘插入软驱,在linux环境下格式化把软盘格式化为ext2的格式:

mke2fs /dev/floppy

执行

mount/dev/fd0 /mnt/floppy
挂载软盘。

执行

mkdir /mnt/floppy/grub
在软盘上建立grub目录。

执行

cp /boot/grub&* /mnt/floppy/grub/
把boot去里面的grub程序复制到软盘上相应的目录中去。如果/boot默认没有挂载要先挂载一下。

执行

cp /boot/grub/* /mnt/floppy/grub/
把boot里面的grub程序复制到软盘上相应的目录中去。

执行

nano /mnt/floppy/grub/menu.lst
修改启动菜单,要把kernel那一行中稍微修改一下,让它指向硬盘上的linux的/boot所在的分区。例如,kernel-gentoo-2.6.20-r8这个文件在硬盘的第一个分区,原来这一行是

kernel /boot/kernel-gentoo-2.6.20-r8
要改成

kernel (hd0,0)/boot/kernel-gentoo-2.6.20-r8

同样,如果有inird这一行的,也需要做相应的改变。当然,如果不想对原有的行进行改动,就在title行下面kernel行上面插入一行,写

root (hd,0,0)
就行了。

存盘退出。

现在要把软盘的mbr重写一下,让软盘启动的时候启动grub,从而进入多重启动菜单。

grub

root (fd0)

setup (fd0)

quit

如果一切顺利地话,这个启动软盘就做好了。

把主板bios中的启动顺序改一下,让软驱成为第一启动设备,这张软盘启动一下,看到grub的stag在慢慢调入内存...成功了。

在复制grub目录的内容到软盘上的同时,也可以把memtest86(+)复制到软盘中去,相应地menu.lst菜单中有有一项kernel memtest86之类的,就可以为很多机器检查内存了。

另外,如果有自己为grub启动菜单做好的背景图片,也可以在这个时候复制到软盘中去,让你的菜单有自己的背景图片。

关键词(Tags): #linux#启动#软盘

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河