[问题]刨根问题—硬盘安装代码含义

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
deepbluefly
帖子: 65
注册时间: 2005-06-26 12:40

[问题]刨根问题—硬盘安装代码含义

#1

帖子 deepbluefly » 2005-12-10 15:57

关于硬盘安装,大多高手都如此解释
kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=20000 devfs=mount,dall
initrd (hd,0)/initrd.gz
boot
当然首先要下载grub4dos

我成功过,也迷惑过,但是如果仅仅知道这样的抄袭代码,我想我还是把linux当成windows来学,也希望高手们授人以渔。
问题:
1、什么是vmlinuz,initrd.gz,其他发行版有吗,不好意思,这个问题搜索实在很困难,当然知道大约是内核或者镜像内核,但它们到底是什么,相信很多新手会困惑
2、代码的具体含义?
3、为何要这样设置,计算机到底在干什么?
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: [问题]刨根问题—硬盘安装代码含义

#2

帖子 oneleaf » 2005-12-10 16:25

deepbluefly 写了:也希望高手们授人以渔。
http://www.google.com
sunny
帖子: 4
注册时间: 2005-12-10 16:38

如何得到ubuntu的CD

#3

帖子 sunny » 2005-12-10 16:58

我的网速太慢,下不下ubuntu
请问怎么得到它的安装CD啊?
兄弟们救我啊!![/list][/list][/b]
deepbluefly
帖子: 65
注册时间: 2005-06-26 12:40

#4

帖子 deepbluefly » 2005-12-10 18:09

得,当我白问
投票有几个知道的?
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
联系:

Re: [问题]刨根问题—硬盘安装代码含义

#5

帖子 laborer » 2005-12-10 18:30

deepbluefly 写了:关于硬盘安装,大多高手都如此解释
kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=20000 devfs=mount,dall
initrd (hd,0)/initrd.gz
boot
当然首先要下载grub4dos

我成功过,也迷惑过,但是如果仅仅知道这样的抄袭代码,我想我还是把linux当成windows来学,也希望高手们授人以渔。
问题:
1、什么是vmlinuz,initrd.gz,其他发行版有吗,不好意思,这个问题搜索实在很困难,当然知道大约是内核或者镜像内核,但它们到底是什么,相信很多新手会困惑
2、代码的具体含义?
3、为何要这样设置,计算机到底在干什么?
  1. vmlinuz是内核,initrd.gz为初始化代码,其它发行版都有;
  2. kernel是grub的指令,它的第一个参数用于指定内核的位置,之后的参数都是内核参数,启动完可以在/proc/cmdline中看到;initrd也是grub指令,用于指定初始化代码的位置;在指定了kernel和initrd之后就可以用boot通知grub启动了。
  3. kernel参数中root=/dev/ram用于指定安装程序的root,也就是安装程序会放在ram disk中,ramdisk_size=20000,顾名思义就是指定ramdisk的大小,即20M。devfs=mount,dall这个我不知道是做什么的,你可以自己去搜搜看。linux启动分为两个阶段,首先会用initrd.gz来建立一个小的系统,用于加载合适的硬盘驱动、显示驱动等,等这些都准备好以后就可以挂载真正的root,也就是内核参数中指定的那个,之后就chroot,然后进入启动的第二个阶段,开始加载所有的驱动,初始话应用程序,这些启动脚本在/etc/中都可以看到。
另外如果你不想把linux当windows学,首要的就是学会用google和man。
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
deepbluefly
帖子: 65
注册时间: 2005-06-26 12:40

#6

帖子 deepbluefly » 2005-12-11 12:50

多谢
另外也把自己的研究吧说说
vmlinuz是make 出来的bzlinuz吧,也就是压缩过的内核,改名cp过来的
initrd.gz是内核中的模块module,使用mkinitrd脚本生成的,
1、顺便问大虾以下,我安装的ubuntu没有该脚本,哪里去下载???
另外似乎linux把内核分成两部分,第一部分就是vmlinuz内核,第二部分是initrd.gz模块,好像启动时先引入内核,然后虚拟ramdisk(rd)磁盘放置模块,动态加载模块。
2、这点我理解的与楼上的不同??
3、size为什么要20000呢??

至于google,我查了中文的mkinitrd有关的网页,没有找到办法,似乎它是redhat的一个脚本???
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
联系:

#7

帖子 laborer » 2005-12-11 13:02

deepbluefly 写了:多谢
另外也把自己的研究吧说说
vmlinuz是make 出来的bzlinuz吧,也就是压缩过的内核,改名cp过来的
initrd.gz是内核中的模块module,使用mkinitrd脚本生成的,
1、顺便问大虾以下,我安装的ubuntu没有该脚本,哪里去下载???
另外似乎linux把内核分成两部分,第一部分就是vmlinuz内核,第二部分是initrd.gz模块,好像启动时先引入内核,然后虚拟ramdisk(rd)磁盘放置模块,动态加载模块。
2、这点我理解的与楼上的不同??
3、size为什么要20000呢??

至于google,我查了中文的mkinitrd有关的网页,没有找到办法,似乎它是redhat的一个脚本???
你对initrd.gz的理解不是很正确,它只是一个启动过程中的小环境,等启动完成之后就完全没有作用了,如果想研究一下initrd.gz可以:

代码: 全选

gunzip -c initrd.gz | cpio -i
把initrd.gz解开,看看里面都有什么东西。如果不是ubuntu,可能要用别的方法解initrd.gz,因为压缩方式可能不一样。

真正的内核模块在/lib/modules/中。

size设为20000是为了容下安装系统。
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
deepbluefly
帖子: 65
注册时间: 2005-06-26 12:40

#8

帖子 deepbluefly » 2005-12-14 21:29

嘿嘿,我学的不深刻
谁知道哪里找 mkinitrd 不然加载新内核启动的时候出现什么fs文件系统不正确。
回复