双眼皮的猪 回复于:2003-09-24 13:59:54 |
grub文件夹里的stage1 stage2究竟是干啥子用的啊?? |
双眼皮的猪 回复于:2003-09-24 14:06:12 |
initrd***.img initrd的镜像,类似ramdisk,把一段程序打包到img里,然后在内存里开辟一段区域,一般是2m,释放到那里运行,都是一些初始化的程序 不同内核,初始化的img可以相同,也可以不同,不要也可以。。。 如果没有,可以在grub.conf里加上no initrd,它就跳过initrd的检测和执行了,以前好像就没有,后来才有的 在没有mount /分区以前,系统要执行一些操作,比如挂载驱动什么的,它就把initrd释放到内存里,作一个虚拟的/,然后执行 查看initrd.img: initrd好像是gz格式的 cp initrd.img initrd.gz guzip initrd.gz mount -o loop initrd /mnt/floppy 试试 看看/mnt/floppy下有没有啥 |
双眼皮的猪 回复于:2003-09-24 14:06:54 |
针对只有一个基本分区的硬盘: 第一个逻辑分区的编号是: kernel认:hda5 grub认javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">hd0,4) |
双眼皮的猪 回复于:2003-09-24 14:14:37 |
grub读取多种分区: 只要grub认的分区格式,它都会知道怎么去处理,其实grub只是负责引导,就是bios和操作系统之间的桥梁,所以它一般装在mbr里,负责把计算机的操作权交付给你指定的操作系统 。。 我猜测还是根据 /boot/grub/里边的那些minix_stage1_*什么的文件来读取多种格式,而进入系统之后,由内核来跟各种分区交流,但是内核是如何与分区交流的,不管了。等我看源码。 希望有高手指导。。hoho。。。 |
luqibing 回复于:2003-09-24 14:57:50 |
solaris怎么引导。 |
双眼皮的猪 回复于:2003-09-24 15:01:04 |
老大,我也是初学者,不能给予答复啊,sorry啦。。 :) HonestQiao老大叫我先玩系统,没办法, 只有从引导程序玩起。。。 然后再深入点搞系统。。 再网络服务。。。 |
双眼皮的猪 回复于:2003-09-24 20:42:30 |
stage1和stage2究竟是干啥的啊? autofs是干啥的啊? /etc/fstab的读取是在autofs之前还是之后呢? |
sakulagi 回复于:2003-09-25 00:06:53 |
相对于MBR来说,grub太大,所以分成stage1和stage2,只有stage1是放在MBR里的。 man autofs里面讲了autofs的作用,和启动过程没有什么关系。 |
siyeclover 回复于:2003-09-25 02:08:08 |
[color=gray:fec9cff652]分区编号问题: 没错,hda5在grub里是(hd0,4),你只要记住grub少1就行了。不管有几个主分区,第一个逻辑分区都是hda5。 读取多种分区问题: 你这个问题cloud看的不是很明白,你是用grub引导FreeBSD失败了是吗? 这个和fstab是无关的,cloud猜测你的grub.conf写的不正确。 你安装好FreeBSD后,若没有安bootloader,那么应该和从前一样进入linux,这时你运行一下fdisk -l,看看FreeBSD在哪个分区,比如在hda3,那么你就在grub.conf最后添加这么一段:[/color:fec9cff652] [code:1:fec9cff652]title FreeBSD rootnoverify (hd0,2) chainloader +1[/code:1:fec9cff652] [color=gray:fec9cff652]应该可以顺利引导FreeBSD的。 luqibing先生问solaris怎么引导,和FreeBSD是一样的,在grub.conf里添上边那么一段话。 以上 喜欢魉呼的siyeclover [/color:fec9cff652] |
双眼皮的猪 回复于:2003-09-25 19:49:00 |
[quote:ecac56d4d8="siyeclover"][/quote:ecac56d4d8] 您好,非常谢谢您的回答, 如果在grub.conf内部添加上一条您说的那一条。 那么也就是在grub引导系统之后再把系统引导权交给 bsd的bootloader,但是我的bsd是没有安装bootloader的 您的意思是说只要安装了操作系统,那么其必然会有引导程序的吗? 如果是这样的话那就可以的,我只需要添加这么一条就行了 抱歉我说的不是很明白.我再说一遍.希望可以让您明白: 我的意思是,在redhat 8.0引导的过程中。系统会加载 /etc/fstab中所有倒数第二列为1的分区,(mount -a)是吗? 那么我当初在没安装FreeBSD的时候。它所在的分区是在/etc/fstab 中倒数第二列为1,也就是说应该自动加载,但是当我安装了FreeBSD 之后呢。因为BSD的分区Linux认不出来,而我没有修改/etc/fstab 这样的话,在fstab中我的bsd的分区类型就依然是default,也就是 安装bsd系统之前的分区格式(ext3),而在这个时候,系统加载,发现格式 不对(这时已经改成bsd的分区格式了),,认不出来,于是就自动重新启动了,我觉得解决办法可以有两种, 一种在/etc/fstab中把FreeBSd的分区给去掉。 另外一种是把它的编号(倒数第二列) 改成0,这样,在系统启动的时候不会自动加载这个分区(这个是看的 www.douzhe.com/linux中的内容) 但是经我测试第二中方法行不通,为什么呢? 当我在把倒数第二列改成0的时候。重新启动看了一下。依然加载了 /FreeBSd分区,然而我把最后一列改成0的时候,系统重新启动却没有加 载bsd分区,那么也就是说系统加载的是最后一列(第六列)为1的(mount -a) 而不是倒数第二列,是吗?如果是这样的话。 www.douzhe.com/linux中有一篇文章就写错了..(忘记哪篇了,呵呵) 我回去加那么一条就可以引导FreeBSD啦?(我个人认为,还要在fstab里去掉 这个分区,不然linux启动的时候想要加载这个分区,却认不出来) 我的grub.conf内部我都没添加任何东西。却重新启动了。 解决这个问题我才去修改menu.lst,呵呵。.我根本没引导FreeBSD Linux就重新启动了 谢谢指点。.. 我的表达能力不行. .. |
双眼皮的猪 回复于:2003-09-25 20:05:48 |
[quote:447ec67a28="sakulagi"]相对于MBR来说,grub太大,所以分成stage1和stage2,只有stage1是放在MBR里的。 man autofs里面讲了autofs的作用,和启动过程没有什么关系。[/quote:447ec67a28] 老大,你又来了。当初在chinaunix第一个环境变量就是您帮忙回答的, 记忆着呢,呵呵 ops: 顺便问一下。stage1放在mbr内,那么在启动mbr的时候,由stage1 来调用stage2是吗? man看不懂.全英文,我没说autofs跟启动有关系,是我没说清楚,俺在 说一次: 假如我在ntsysv(也可以setup-->System services吧)里指定autofs 可以随机启动,同时我机器上装有FreeBSd(不是ext3格式的),那么在 系统自动加载的时候(假设FreeBSD是处于自动加载的分区队列中), 系统启动到加载机器上分区的时候(譬如加载/ 什么的), 两种情况: 1.开了autofs服务 到了加载各个分区的时候,论到FreeBSd,这时系统本来认不出来,但是开了autofs服务,于是就调用autofs服务,哎呀,这是FreeBSD的分区,它就认出来了 2.没开autofs服务 系统启动到加载分区的时候,呀,这是什么分区啊,到fstab中去找。 类型是default啊,没错啊,应该是ext3的啊,怎么认不出来啊? (这时候系统会自动重新启动,我的是rh8.0), 请问我的猜测正确吗?? 只是猜测。... |
sakulagi 回复于:2003-09-26 09:41:08 |
不客气。 autofs的作用举一个例子。比如你把/dev/hdb7设置成mount point是/tmp/db7,然后设置成autofs。那么如果你访问/tmp/db7,/dev/hdb7就会被自动mount(由automountd来完成)。如果你一段时间不访问/tmp/db7,那么/dev/hdb7就会被自动的umount. |
sakulagi 回复于:2003-09-26 09:54:57 |
是由stage1来把stage2来调入内存的。 |
simbasun 回复于:2003-09-26 13:48:06 |
顶。。 |
siyeclover 回复于:2003-09-26 19:51:43 |
[quote:625e5c0b5e="双眼皮的猪"] 那么我当初在没安装FreeBSD的时候。它所在的分区是在/etc/fstab 中倒数第二列为1,也就是说应该自动加载,[/quote:625e5c0b5e] [color=gray:625e5c0b5e]不客气,fstab的第5,6两列的作用不是你理解的那样,你man fstab一下,里面说的很清楚。[/color:625e5c0b5e] [code:1:625e5c0b5e]The fifth field, (fs_freq), is used for these filesystems by the dump(8) command to determine which filesystems need to be dumped. If the fifth field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be dumped. The sixth field, (fs_passno), is used by the fsck(8) program to deter- mine the order in which filesystem checks are done at reboot time. The root filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware. If the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked. [/code:1:625e5c0b5e] [color=gray:625e5c0b5e]简单的说,第5列和dump有关,第6列和fsck有关。 cloud的理解,只要在fstab文件里的在引导时都会mount的,所以你若不想在引导时mount它,应该用#注释掉它,这样你的linux就不会在启动途中自动重启了。 以上 喜欢新田由加的siyeclover于Angel Voice中[/color:625e5c0b5e] |
双眼皮的猪 回复于:2003-09-29 11:44:48 |
非常感谢.. 但是我不清楚dump是什么意思?是干嘛的?回去找找. 在fstab里都会自动加载吗? 最后一列应该是做check 用的,我把那里改成0, 然后在开机过程中(dmesg),并没有出现我改成0 的那个分区. 应该是没有加载的呀 |