编译内核后,修改grub.conf
把kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
改成了kernel /bzImage ro root=LABEL=/boot
重新启动后碰到这个问题
Kernel panic: VFS: unable to mount root fs on 00:00
停在这里不动了....进不了系统...
平台
Win2k+Vmware4.0+RH9.0+SCSI
双眼皮的猪 回复于:2003-10-28 11:15:03
没办法:
我把grub.conf改回去了,改成:
title Redhat
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
这样就可以启动....
但是我改成
title redhat
kernel /bzImage ro root=LABEL=/
initrd /initrd-2.4.20-8.img
或者
kernel /bzImage ro root=LABEL=/
no initrd
都不行...我确定bzImage我已经放到/boot里边而且和vmlinuz-2.4.20-8是一个文件夹里,路径应该没有问题,那这个是编译出来的内核有问题吗?
都会出现
Kernel panic : VFS :unable to mount root fs on 00:00
双眼皮的猪 回复于:2003-10-28 11:32:17
修改成
kernel /bzImage ro root=LABEL=/dev/sda
initrd /initrd-2.4.20-8.img
kernel /bzImage ro root=LABEL=/
no initrd
依然不行,还是老问题...
继续尝试...
顶....
考虑initrd.img的问题:
带参数执行/sbin/mkinitrd就可以创建新的initrd映相::
/sbin/mkinitrd /boot/newinitrd-image 2.0.12
/boot/newinitrd-image是新生成映相的文件名,而2.0.12表示您要在initrd中使用该版本核心
的相应的模组驱动程序(位于/lib/modules)(但并非得用与当前核心版本一致的模组
驱动程序)
于是我制作了一个initrd
mkinitrd /boot/custominitrd.img 2.4.20-8
ps:2.4.20-8是将要寻找模块的地方:)
然后我在grub.conf里边指定custominitrd.img,重新启动,
仍旧失败...
我又起用我的/lib/modules目录底下的2.4.20-8custom(我编译后的模块)
mkinitrd /boot/custominitrd2.img 2.4.20-8custom
出错提示:
No module BusLogic found for kernel 2.4.20-8custom
Ps:
BusLogic是SCSI的驱动...
双眼皮的猪 回复于:2003-10-28 12:04:38
比较两个文件夹
ls -R 2.4.20-8 >; 1
ls -R 2.4.20-8custom >; 2
diff 1 2 >; different
vi different
双眼皮的猪 回复于:2003-10-28 12:34:08
顶一下,不然高手们来了看不到了....
cau_eric 回复于:2003-10-28 13:01:50
编译内核后只要make install就可以了!
双眼皮的猪 回复于:2003-10-28 13:02:54
哦,谢谢,是漏掉这一步了吗?
双眼皮的猪 回复于:2003-10-28 13:08:42
make install最后出错,出错提示是:
No module BusLogic found for kernel 2.4.20-8custom
mkinitrd failed
make[1]:*** [install] Error 1
make[1]:Leaving directory `/usr/src/linux-2.4.20-8/arch/i386/boot`
make *** [install] Error 2
看来我编译好的内核少某些模块是不是??
cau_eric 回复于:2003-10-28 13:14:12
`/usr/src/linux-2.4.20-8/arch/i386/boot
你是不是把内核给移走了?
cau_eric 回复于:2003-10-28 13:17:08
注意:编译内核步骤:
make mrproper
make menuconfig
make bzImage
make modules(若有模块的话)
make modules-install(若有模块的话)
make install
make clean(可有可无)
双眼皮的猪 回复于:2003-10-28 13:35:07
因为就是怕这种问题出现,所以我怕我所敲的全部命令写出来,您看看:)
cd /usr/src
cp -i -r linux-2.4.20-8/ linux.old
cp /boot/vmlinuz-2.4.20-8 /usr/src/vmlinuz.old
cd linux-2.4.20-8
make mrproper
make menuconfig
这里把config存到/usr/src/kernel1
make dep
make clean
make bzImage
cd /usr/src/linux-2.4.20-8/arch/i386/boot
mv bzImage /boot (是不是这里给移走了啊)
make modules
make modules_install
make install就跟上边的那样出错....这样出错:
No module BusLogic found for kernel 2.4.20-8custom
mkinitrd failed
make[1]:*** [install] Error 1
make[1]:Leaving directory `/usr/src/linux-2.4.20-8/arch/i386/boot`
make *** [install] Error 2
cau_eric 回复于:2003-10-28 13:38:46
cd /usr/src
cp -i -r linux-2.4.20-8/ linux.old
cp /boot/vmlinuz-2.4.20-8 /usr/src/vmlinuz.old
cd linux-2.4.20-8
make mrproper
make menuconfig
这里把config存到/usr/src/kernel1
make dep
make clean
make bzImage
对,这个时候就接着编译就行了!
双眼皮的猪 回复于:2003-10-28 13:43:20
I will compile the kernel again....
take your time...
There's something wrong with my Chinput....
faquirsun 回复于:2003-10-28 13:58:28
我在redhat 8.0上编译过2.4.22的内核,基本上按照手册上的步骤,编译过程没有问题,最后在修改grub.conf文件上面出现问题
我按照原来的写法,在grub.conf中新加了一个启动项,
title Redhat
root(0,0)
kernel /vmlinuz-2.4.22 ro root=LABEL=/
initrd /initrd-2.4.222.img
重启后系统报错。但是修改成:
kernel /vmlinuz-2.4.22 ro root=/dev/hda2
就可以了
我一直不明白,为什么不能使用LABEL=/的写法,也没找到资料。
双眼皮的猪 回复于:2003-10-28 14:01:25
在grub.conf里边
/代表的是系统中的/boot
我个人这么认为。。。。
faquirsun 回复于:2003-10-28 14:14:21
在/etc/fstab文件中:
LABEL=/对应的挂载点是/
LABEL=/boot对应的挂载点是/boot
可是为什么Redhat的能这么用,自己写的就不行?
双眼皮的猪 回复于:2003-10-28 14:23:01
我个人看法啊:
既然grub跟kernel认分区不一样,那么,同样grub.conf当然也可以跟kernel读取/etc/fstab不一样...
我是菜鸟啊...呵呵:)
问太多了,我也不知道哦...
cau_eric 回复于:2003-10-28 15:00:06
引用:原帖由 "faquirsun" 发表: 在/etc/fstab文件中:
LABEL=/对应的挂载点是/
LABEL=/boot对应的挂载点是/boot
可是为什么Redhat的能这么用,自己写的就不行?
不能有两个/
cau_eric 回复于:2003-10-28 15:03:58
我的显卡驱动怎么装不上?我用的是N卡,RedHat9.0,显示错误好象说我的kernel modules不支持!
猪猪能告诉我是怎么回事吗?
cau_eric 回复于:2003-10-28 15:06:04
昨天我做DNS的时候碰到的问题!
我有个DNS的问题:我的域名服务不能重起,不知道是什么原因?不知道有哪位朋友碰见过这种问题!
#service named restart
named stoping....
named starting....
named server running[root@linux root]#
大概意思就是这样,具体显示内容我记不得太清楚.
双眼皮的猪 回复于:2003-10-28 15:10:24
引用:原帖由 "cau_eric" 发表: 我的显卡驱动怎么装不上?我用的是N卡,RedHat9.0,显示错误好象说我的kernel modules不支持!
猪猪能告诉我是怎么回事吗?
说良心话。驱动装不装的上我无所谓,我根本不用X,要用桌面的话用windows,呵呵:)
看看这个行不...
http://chinaunix.net/jh/4/168533.html
guangdong 大哥的帖子....
双眼皮的猪 回复于:2003-10-28 15:12:20
引用:原帖由 "cau_eric"]ux root 发表: #
大概意思就是这样,具体显示内容我记不得太清楚.
没有OK(绿色)和FAILED(红色)吗?哈哈。
你弄清楚后一定要告诉我...0_o o_0
cau_eric 回复于:2003-10-28 15:14:07
哎,没办法,有的时候还是得用啊!
那个DNS的问题你怎么看?
cau_eric 回复于:2003-10-28 15:16:30
里面是SiS的艾
双眼皮的猪 回复于:2003-10-28 15:17:04
加我QQ说吧...
2106107
cau_eric 回复于:2003-10-28 15:23:36
没有OK(绿色)和FAILED(红色)吗?对,所以才感到奇怪!
另,我这里用不了qq,很郁闷的!
faquirsun 回复于:2003-10-28 15:43:45
引用:原帖由 "cau_eric" 发表:
不能有两个/
你的意思是在grub.conf中,不能有两个等价于roo=/的语句,即使它们属于不同的启动选项?
双眼皮的猪 回复于:2003-10-28 15:52:29
我又重新编译了一次...
在make modules_install之后,
我make install(是不是安装内核的意思啊)
出现错误...
No module BusLogic found for kernel 2.4.20-8custom
mkinitrd failed
make[1]:*** [install] Error 1
make[1]:Leaving directory `/usr/src/linux-2.4.20-8/arch/i386/boot`
make *** [install] Error 2
请问这是怎么回事...
sky-walker 回复于:2003-10-28 16:01:54
引用:原帖由 "cau_eric" 发表: 我的显卡驱动怎么装不上?我用的是N卡,RedHat9.0,显示错误好象说我的kernel modules不支持!
猪猪能告诉我是怎么回事吗?
N卡的驱动太新?驱动里的大都功能是需要kernel的支持,所以驱动对应的内核版本很严格,
到nVidia网站找到对应你系统kernel版本的驱动,要很严格的
faquirsun 回复于:2003-10-28 16:13:30
我的编译过程是这样的:
cd /usr/src/linux-2.4.22
make mrproper
make menuconfig
make dep
make clean
make bzImage
make modules
make modules_install
make install
然后修改grub.conf文件,添加一个启动项。
大概就是这样了......
双眼皮的猪 回复于:2003-10-28 16:16:00
我跟楼上的一模一样...但是出错...
make install
No module BusLogic found for kernel 2.4.20-8custom
mkinitrd failed
make[1]:*** [install] Error 1
make[1]:Leaving directory `/usr/src/linux-2.4.20-8/arch/i386/boot`
make *** [install] Error 2
请问这是怎么回事...
網中人 回复于:2003-10-28 16:19:08
1) 請在 make module modules_install 之前確定 working dir :
cd /usr/src/linux-2.4.20-8
2) 確定 menu.lst 的 LABEL 為 =/
3) 要是還不行,請將如下結果丟上來:
head -5 /usr/src/linux-2.4.20-8/Makefile
ls /lib/modules
for i in $(mount | grep '^/dev' | awk '{print $1}'); do e2label $i; done
ls -l /boot
cat /boot/grub/menu.lst
双眼皮的猪 回复于:2003-10-28 16:45:28
#pwd
/usr/src/linux-2.4.20-8
#vi /boot/grub/menu.lst
title redhat
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
#head -5 /usr/src/linux-2.4.20-8/Makefile
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
EXTRAVERSION = -8custom
#ls /lib/modules
2.4.20-8 2.4.20-8custom
#for i in $(mount | grep '^/dev' | awk '{print $1}'); do e2label $i; done
/
/boot
能不能解释一下这行脚本是什么意思???:)
網中人 回复于:2003-10-28 17:12:24
ls -l /boot 呢?
那行 script 可拆解為:
1 個 for 迴圈
value 從 $() 這個 command substitution 之 stdout 讀入
逐個 item 跑 e2label
cau_eric 回复于:2003-10-28 17:16:22
$(mount | grep '^/dev' | awk '{print $1}')
主要是这个不太明白!
双眼皮的猪 回复于:2003-10-28 17:16:36
那么能给个分析吗?呵呵:),谢谢了...
为什么会考虑到您叫我做的这些方面,会有什么影响呢?
網中人 回复于:2003-10-28 17:25:36
mount 不帶任何參數,會得到當前的 mount point
有些 mount point 不是用硬碟來的,就用 grep '^/dev' 濾掉
awk 功能很強,print $1 是印出每行的第一個欄位
要這各結果,是為了確定你的 LABEL 是正確定,
同時也確定 /boot 是獨立的 mount point ,
因為這些都是 menu.lst 設定要的...
cau_eric 回复于:2003-10-28 17:41:16
awk 功能很強,print $1 是印出每行的第一個欄位
"欄位" :是什么?
awk: 作用是什么?
網中人 回复于:2003-10-28 17:58:14
O'Reilly 有一本書,英文版大概有 4 百多頁,
甚麼也不講,只講兩個 command : sed & awk
因此,要三言兩語說出 awk 的好,恐怕不容易哦~~~ ^_^
所謂欄位,英文是 field 。
常用於 text 處理上,每一行 text line ,依據 IFS(Internal Field Seperator)來分出一個或多個 field (欄位),
awk '{print $1}' 就是只印出每行的第一個 field 。
双眼皮的猪 回复于:2003-10-28 19:33:49
引用:原帖由 "双眼皮的猪" 发表: Error 2
请问这是怎么回事...
说了半天,我这个问题还是没人解决....
双眼皮的猪 回复于:2003-10-28 20:02:16
找到一点资料:
你會看到一行訊息像這樣:
kernel panic: VFS: Unable to mount root fs on XX:YY
這是常見的問題,而它只有一些原因。首先,請根據 device code 清單檢查 device XX:YY ;它是正確的 root device 嗎 ?如果不是,那你可能沒有做過 rdev -R ,或者是你是對錯誤的 image 執行rdev -R。如果 device code 是正確的,那麼請仔細地檢查被編譯到你 kernel 內的 device 驅動程式。請確定它有內建軟碟片、 ext2 filesystem 支援
可惜看不懂...rdev不晓得是什么,但我 还是估计编译内核出错了,使挂上root分区的时候出现问题....
但是我在fs那个里边都没敢动它....
可能是什么原因?
sky-walker 回复于:2003-10-28 20:12:48
引用:原帖由 "網中人" 发表: O'Reilly 有一本書,英文版大概有 4 百多頁,
甚麼也不講,只講兩個 command : sed & awk
因此,要三言兩語說出 awk 的好,恐怕不容易哦~~~ ^_^
所謂欄位,英文是 field 。
常用於 text 處理上,每一行 tex..........
我还见过一本5.6百页,只介绍awk一个command的书哩,
感觉这是Unix shell"高手的高手次方牛人",为了寻求完美所做的,而且
这些人大都小时候就开始接触Unix,二三十年的积累呀,向往......
其实命令本身理解没问题,台湾所说的"欄位",内地称为"数据域" :lol:
双眼皮的猪 回复于:2003-10-28 20:31:33
哎...
回去测试去了...
希望早点解决....
sky-walker 回复于:2003-10-28 20:47:06
引用:原帖由 "双眼皮的猪" 发表:
说了半天,我这个问题还是没人解决....
对不起,走"蹄"啦 8)
我觉得你应该先解决BusLogic module的问题,
你编译的时候,选模块时有没有误操作?
rdev ------设备管理
rdev [-rsvh ] [-o offset ] [ image [value [ offset ] ] ]
用来取得或是设定kernel image的各项参数,如
对应参数:
root device -r
swap device -s
RAM disk -h
video mode -o
一般还和以下一起使用:
swapdev [ -o offset ] [ image [ swap_device [ offset ] ] ]
ramsize [ -o offset ] [ image [ size [ offset ] ] ]
videomode [ -o offset ] [ image [ mode [ offset ] ] ]
rootflags [ -o offset ] [ image [ flags [ offset ] ] ]
双眼皮的猪 回复于:2003-10-28 21:15:53
看提示BusLogic module的作用应该是导致不能mkinitrd才对,但是我设置为no initrd仍然不能引导啊....
您的意思是说我的BusLogic module有问题?
选模块的时候有没误操作我就不知道了,呵呵:)
谢谢您的回答....
網中人 回复于:2003-10-29 00:05:02
引用:原帖由 "双眼皮的猪" 发表:
说了半天,我这个问题还是没人解决....
again:
ls -l /boot 呢?
sakulagi 回复于:2003-10-29 08:05:02
我没有这么写过。
[1] 关于LABEL的问题,前两天刚刚讨论过。你搜索以下"e2label".我通常都不使用,尤其是有多个linux安装的时候。
[2] 我的grub.conf里都是写/boot/vmlinuz。。。。。./和/boot不是一回事。
双眼皮的猪 回复于:2003-10-29 10:18:15
引用:原帖由 "網中人" 发表:
again:
ls -l /boot 呢?
我直接敲出来吧,您要看哪个文件的属性,就帮忙看看行不...
boot.b
chain.b
config-2.4.20-8
grub
initrd-2.4.20-8.img
kernel.h
lost+found
message
message.ja
module-info->;module-info-2.4.20-8
module-info-2.4.20-8
os2_d.b
System.map->;System.map-2.4.20-8
System.map-2.4.20-8
vmlinux-2.4.20-8
vmlinuz->;vmlinuz-2.4.20-8
vmlinuz-2.4.20-8
这是我重新装系统后的(vmware里边的,我的真实rh已经进不去了)
我记得里边还有bzImage
顺便问一下,如果说出现我那个错误与System.map有没关系?
还有,您为什么要/boot里的文件呢?
双眼皮的猪 回复于:2003-10-29 10:28:43
我没有列出-l选项所列出的属性,您要看哪个文件,您提一下,我来列出来行不?这要是敲出来太麻烦了...
我是在别人机器上上网...:)
bjchenxu 回复于:2003-10-29 10:38:40
作为初学者,最快的学习方法就是看文档,然后动手
我找了一篇文档
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-custom-kernel-modularized.html
你的问题在于配置.config文件不正确,你试试将
/usr/src/linux-2.4/configs/kernel-2.4.18-i686.config文件拷贝到你的源码目录下的.config文件,然后试试重编吧
刚才,我在rh8上编译了2.4.20的核心,效果非常理想
也可以理解,毕竟在红帽的系统中使用红帽提供的.config文件,呵呵
双眼皮的猪 回复于:2003-10-29 10:40:36
啊....E文,呵呵,咬牙看吧...
谢谢bjchenxu...
看文档咯.....
冷风123 回复于:2003-10-29 10:56:41
我想你是 kernel /vmlinuz-2.4.20-8 ro root=/dev/hdax
新内核的启动选项应该是这个 那个 x要根据你的 root分区在哪儿
双眼皮的猪 回复于:2003-10-29 11:09:28
root=LABEL=/
跟root=/dev/hdaX
差不多,都可以引导,您可以试一下..:)
双眼皮的猪 回复于:2003-10-29 11:20:06
奇怪了
#lsmod
在下边的列表里明显有一行
BusLogic 99932 3
已经进内核了啊 ..(是否是现有的内核有这个mod,而编译后的没有)
双眼皮的猪 回复于:2003-10-29 11:26:34
引用:原帖由 "bjchenxu" 发表: 作为初学者,最快的学习方法就是看文档,然后动手
我找了一篇文档
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-custom-kernel-modularized.html
你的问题在于配置.config文件不正?.........
谢谢,您给的这个文档我晓得,我现在是不知道在编译内核的过程中系统都做了哪些事情...以及一些依赖性什么的东东...就是譬如make menuconfig里边,做完以后设置都存哪里了,到时候都要从哪里读取啥的...
.config文件在编译中起个什么作用呢?
blueme 回复于:2003-10-29 11:40:05
No module aic79xx found for kernel 2.4.21
make[1]: *** [install] Error 1
make[1]: Leaving directory `/usr/src/linux-2.4.21/arch/i386/boot'
make: *** [install] Error 2
???
??
blueme 回复于:2003-10-29 11:47:47
我的这样的
没有AIC79XX的模块??
我是RH8的2.4.18升到2.4.21
MAKE MENUCONFIG时,我选AIC79XX和AIC7XXX都选了啊。。。
请赐教
bjchenxu 回复于:2003-10-29 12:44:37
make menuconfig的用处是生成系统需要的配置(比如,哪些是模块,哪些是内置,哪些不编),它会读取源码目录下的.config文件,将其作为标准配置,供你修改
/usr/src/linux-2.4/configs/kernel-2.4.18-i686.config是rh公司提供的标准配置文件,你将它拷贝到源码目录中,文件名为.config,make menuconfig执行后,无需修改,直接退出,退出时选择保存就行了,然后按标准步骤进行
我已经执行成功了,你可以试试
網中人 回复于:2003-10-29 13:28:19
看起來,環境有點亂,請問你是用 scsi 還是 ide 硬碟呢?
要是用 scsi ,要自己做 initrd 哦。
我也不知道為何你要進 vmware ?要知到 vmware 看到的是 virtual machine 。
這樣吧,你先用 CD-ROM 開機,
然後輸入 linux rescue ,
第一個選項請按 skip ,然後都是 enter ,
留意一下最後一個畫面是否有叫你 chroot /mnt/sysimage 的提示?
若有,那就打 chroot /mnt/sysimage ,
然後改那邊的 /boot/grub/menu.lst ,看看是否能救回?
要是不行,那就到 /usr/src/2.4.20-8 那邊再編一此吧。
可以 copy RedHat 原廠的 config 來編:
# cd /usr/src/2.4.20-8
# cp .config .config.bak
# cp configs/kernel-2.4.20-8-i686.config .config
再跑 make mrproper dep bzImage modules ....
總覺得,你這次編 kernel 的習慣不好:
1) 沒做 backup ,起碼 /boot 跟 /lib/modules 要 backup 一下,萬一有問題,其碼能回到原點,再重新出發。
2) 沒用 floppy 來 test 。除非 new kernel 太大,要不然,在真正開始 cp bzImage 之前,應先跑一下 make bzdisk 。
我個人編 kernel 的心得在如下:
http://www.study-area.org/linux/system/linux_kernel.htm
版本有點舊(2.4.16),你可到 kernel.org 抓同一版的 kernel source 回來編,
也可以碰碰運氣是否能套用到 2.4.20 上。
是否成功編起來不重要,重要的是在過程中你學到了甚麼... ^_^
双眼皮的猪 回复于:2003-10-29 16:01:12
谢谢哦,我做了备份的哦,呵呵:)
我是在vmware中练熟悉了,然后再去实战啊.....
我知道怎么修复系统,但是我编译不成功这个问题要解决啊....
我没有启动盘,借别人去了.....
所以暂时没有修复系统,而在vmware中调试,是非常快的....
重新启动啊什么的,有点危险性的我都在vmware中玩熟悉了
再到实际系统中去...
我修复系统的方式跟您有点区别,因为我没用到.config
文件,我只在 grub.conf里边把kernel指定到原来的vmlinuz-2.4.20-8,把initrd指定到initrd-2.4.20-8.img恢复一下就好了...
我在修复系统的时候发现一个问题:
在出现提示:Load ScSI drivers的时候
下面有一行,就是 Load BusLogic,我怀疑BusLogic是否是
SCSI的驱动的...
如果是SCSI磁盘和运用ext3格式的话,就一定要制作initrd,自己制作,
关键是这么回事,我在mkinitrd initrd-2.4.20.img 2.4.20-8custom(这个文件夹应该就是编译后的模块所在,也就是目录/lib/modules/2.4.20-8custom),提示No BusLogic Module Found
,于是我觉得我在vmware中还是不行,因为我创建的是scsi磁盘(在vm中),而现实中是用的IDE,而IDE则可以不用initrd,
非常感谢指教...但不知"沒用 floppy 來 test 。除非 new kernel 太大,要不然,在真正開始 cp bzImage 之前,應先跑一下 make bzdisk " 您的这句话是什么意思...
双眼皮的猪 回复于:2003-10-29 16:05:43
我想,如果是SCSI的话,那我的系统启动不了是理所当然的,因为我的vmware创建的硬盘是SCSI硬盘,而我在编译内核的时候想着是IDE,于是没有把SCSI的模块编译进去,而且没选择SCSI硬盘,这样一定会出错...
但是我在实际硬盘上编译的内核也出现了同样问题...
那又是怎么回事呢?我实际硬盘是IDE硬盘...没有选择SCSI模块怎么也出现同样的错误...
faquirsun 回复于:2003-10-29 16:09:40
網中人提供的文章不错,Thanks!
晚上回去重新编译一下2.4.22,上次编译完还是有些问题:一个是USB驱动方面的,还有一个是输入poweroff后不能自动关机,就一直停留在power off那里。这两个问题是不是和编译时的配置有关系?
双眼皮的猪 回复于:2003-10-29 16:14:36
楼上的大哥,我也发现你开始提的那个问题了...
grub.conf
主要在kernel的路径上,如果我写成
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
这里的LABEL=/这后面的/其实是系统中的/boot分区,然而在这里可以以LABEL=/来表示
另外一种:
kernel /vmlinuz-2.4.20-8 ro root=/dev/sda3
这种竟然也可以找到vmlinuz,天那,这究竟是怎么回事...
这个LABEL究竟是什么意思?
網中人 回复于:2003-10-29 16:14:42
那... 你知道 make bzdisk 是作啥用的嗎? ^_^
双眼皮的猪 回复于:2003-10-29 16:17:07
大哥您在啊....
我不懂make bzdisk的作用啊...在google上正在搜索...
make bzdisk: Used for big kernels and operates the same as zdisk. You will know if you need this option, because make will fail with a message that the image is too big
跟make bzImage的用处是差不多的...
faquirsun 回复于:2003-10-29 16:20:23
俺只知道用LABEL=/不行,还不知道为什么不行和如何才能使它能行,呵呵,有点饶舌,偶也是才开始学LINUX。
双眼皮的猪 回复于:2003-10-29 16:22:34
引用:原帖由 "faquirsun"]俺只知道用LABEL=/不行,还不知道为什么不行和如何才能使它能行,呵呵,有点饶舌,偶也是才开始学LINUX。 发表:
ro root=LABEL=/
这里的LABEL=/表示的是系统中的/boot分区,也就是说,是可以的,不是不行:) :oops: :oops: :oops:
網中人 回复于:2003-10-29 16:23:53
好吧,
請問如下結果為何:
mount
faquirsun 回复于:2003-10-29 16:28:21
引用:原帖由 "双眼皮的猪" 发表:
ro root=LABEL=/
这里的LABEL=/表示的是系统中的/boot分区,也就是说,是可以的,不是不行:) :oops: :oops: :oops:
我在grub.conf里面是增加了一个启动项,原来的保留,这样写的话是启动不起来的
網中人 回复于:2003-10-29 16:28:23
還有:
cat /proc/partitions
双眼皮的猪 回复于:2003-10-29 16:30:57
#mount
/dev/sda3 on / type ext3 (rw)
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/sda1 on /boot tyep ext3 (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
为了好辨认,都加了一行空格...
wyckwemail 回复于:2003-10-29 17:33:23
up!
我想把rh9.0(kernel 2.4.20-8)内核升到2.6.0.xx
哪为大侠指点一下,我是一个菜菜鸟,但很感兴趣,!
双眼皮的猪 回复于:2003-10-29 17:49:54
引用:原帖由 "faquirsun" 发表:
我在grub.conf里面是增加了一个启动项,原来的保留,这样写的话是启动不起来的
这样写,我是启动了的...呵呵,刚这样写才发现的
发现root=LABEL=/
和root=/dev/sda3
都可以启动....
双眼皮的猪 回复于:2003-10-29 19:04:40
#cat /proc/partitions
major minor #blocks name rio rmerge rsect wio wmerge wsect wuse running use aveq
0 0 3145728 sda 75393 114916 1521470 856380 17985 73163 730754 66164100 730810 7474880
0 1 104391 sda1 41 73 228 430 34 11 90 1790 0 2180 2220
0 2 160650 sda2 1568 41 12608 7170 2159 5804 63736 212670 0 158440 219840
0 3 2875635 sda3 73781 114797 1508618 848740 15792 67348 666928 6401950 0 593670 7252700
敲的累死哦,呵呵:)
双眼皮的猪 回复于:2003-10-29 21:35:53
谢谢大家支持,我已经搞定...
在真实环境编译成功,正如开始所说
应该是initrd的问题...
我重新编译了一次内核....
然后还是按照我原来的步骤。我没有make modules_install
然后我创建了自己的initrd...
mkinitrd /boot/initrd-2.4.20-9.img 2.4.20-8custom
我也没有修改System.map
我编译完后...
修改grub.conf
title redhat
kernel /vmlinuz-2.4.20-9 ro root=LABEL=/
initrd /initrd-2.4.20-9.img
重新启动...成功...
开机free -m
显示...
用了19M内存,勉强可以...呵呵:)
再次感谢一些朋友:
cau_eric faquirsun sky-walker 網中人 sakulagi
bjchenxu ORA-600
ORA-600大哥告诉我应该是initrd的问题...
果然是这样...
谢谢大家...
sky-walker 回复于:2003-10-29 22:26:04
恭喜!
不谢, 其实我没有做什么:lol:
其实我觉得,问题远没解决:
1.你前后两次操作有没有添加modules?
而make modules_install 未用,system.map未替换,
却取得了成功?
看来mkinitrd到底做了什么,以及生成的initrd文件我们没有搞清楚
2.为什么initrd的错误会导致根本不存在的SCSI的BusLogic module出错?
难道是内核报错的bug?因为很多的内核compile上都出现这问题?
看来mkinitrd到底做了什么,以及生成的initrd文件我们没有搞清楚
解决问题的深层次目的在于:现象出现的蹊跷本质细节,而非大而化之的解决方法
一点小感,见笑啦 :oops:
網中人 回复于:2003-10-30 00:31:11
引用:原帖由 "双眼皮的猪"]敲的累死哦,呵呵:) 发表:
首先,恭喜你終於搞定了﹗ ^_^
下次貼 screen message 的話,你可試試在 windows 底下用 putty 連進 linux ,
然後用鼠標將字"選"起來,就可以到處"貼"了...
LZG8056 回复于:2003-10-30 01:25:09
引用:原帖由 "網中人" 发表:
首先,恭喜你終於搞定了﹗ ^_^
下次貼 screen message 的話,你可試試在 windows 底下用 putty 連進 linux ,
然後用鼠標將字"選"起來,就可以到處"貼"了...
钦佩中.............
wyckwemail 回复于:2003-10-30 08:10:04
up!
昨晚我花了好几个小时升级内核(2.6.0-test9),但老出新错误,放在这里,希望高手们分析一下什么原因.如下
mount: error 19 mounting ext3
pivot root: pivot_root(/sysroot,/sysroot/initrd) failed:2
unount /initrd/proc failed :2
Freeing unused kernel memory:236k freed
kernel panic:no init found
Try passing init option to kernel
wyckwemail 回复于:2003-10-30 08:10:55
up!
昨晚我花了好几个小时升级内核(2.6.0-test9),但老出新错误,放在这里,希望高手们分析一下什么原因.如下
mount: error 19 mounting ext3
pivot root: pivot_root(/sysroot,/sysroot/initrd) failed:2
unount /initrd/proc failed :2
Freeing unused kernel memory:236k freed
kernel panic:no init found
Try passing init option to kernel
swimcat 回复于:2003-10-30 08:43:03
晕倒,编译内核后如果是grub.conf作引导的话基本是不要修改什么。
直接REBOOT就OK了,如果想把内核的版本号改过来的话,你只要到里面改一下LABEL后面的版本号就可以了。
对了,你做的过程中的确有错。1、内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage 2、# make modules
# make modules_install
编译成功后,系统会在/lib/modules目录下生成一个2.4.20子目录,里面存放着新内核的所有可加载模块。 3、启动新内核
1、将新内核和System.map文件拷贝到/boot目录下
# cp /usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-2.4.7-10
# cp /usr/src/linux-2.4/System.map /boot/System.map-2.4.7-10
# cd /boot
# rm -f System.map (删除原来的连接)
# ln -s System.map-2.4.7-10 System.map
然后到GRUB里面改一下版本号。
2-3两步总的意思就是把新内核代替旧的 然后建立新的系统MAP的连接。
swimcat 回复于:2003-10-30 08:49:23
编译内核后如果是grub.conf作引导的话基本是不要修改什么。
直接REBOOT就OK了,如果想把内核的版本号改过来的话,你只要到里面改一下LABEL后面的版本号就可以了。
对了,你做的过程中的确有错。1、内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage 2、# make modules
# make modules_install
编译成功后,系统会在/lib/modules目录下生成一个2.4.20子目录,里面存放着新内核的所有可加载模块。 3、启动新内核
1、将新内核和System.map文件拷贝到/boot目录下
# cp /usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-2.4.7-10
# cp /usr/src/linux-2.4/System.map /boot/System.map-2.4.7-10
# cd /boot
# rm -f System.map (删除原来的连接)
# ln -s System.map-2.4.7-10 System.map
然后到GRUB里面改一下版本号。
2-3两步总的意思就是把新内核代替旧的 然后建立新的系统MAP的连接
wyckwemail 回复于:2003-10-30 09:05:31
错误
wyckwemail 回复于:2003-10-30 09:06:55
刚才发错了!
up!
昨晚我花了好几个小时升级内核(2.6.0-test9),但老出新错误,放在这里,希望高手们分析一下什么原因.如下
mount: error 19 mounting ext3
pivot root: pivot_root(/sysroot,/sysroot/initrd) failed:2
unount /initrd/proc failed :2
Freeing unused kernel memory:236k freed
kernel panic:no init found
Try passing init option to kernel
cau_eric 回复于:2003-10-30 09:37:09
就是啊,好象现在的版本根本就不用修改,它自动就搞定了.现在甚至连备份都不用做,它会自动在新内核后加上custom的,我编了好几次了,都没有问题的!
wyckwemail:请重新开个帖如何,这个看得我累死了,而且你这样跟帖,别人都不会回哦,经验!:)
網中人 回复于:2003-10-30 11:46:08
1) system.map 不用 copy ,它會自動更新。
2) Makefile 決定用甚麼版本。
3) 用 make install 或 make bzlilo 這類 target ,最好能了解它們底下做了些啥。
4) grub 只需改 menu.lst ,不需重灌 grub 。LILO 則不然。
5) menu.list 中的 root=(hdx,x) 的 root 是指 /boot partition
但 kernel 那行的 root=/dev/hdxx 則是指 / partition 。這點請留意。
6) 若 /boot 是獨立的 partition ,那 kernel 那行的 kernel image path 是從 / 下找(/boot partition),
要是 /boot 沒有切出來,那就要到 /boot/ 下找(/ paritition)
7) 要是用 SCSI 應碟,需要制作 initrd ,這除了要求在 kernel 中將 inittrd 編進 boot up 之外,還要產生正確的 module 才能 make initrd。
8) 對開機流程了解一下,對 troubleshooting 很有幫助。
9) 任何時侯都建議 backup 及準備好 boot disk 。
10) 最後,多燒香拜佛、求神保祐...
双眼皮的猪 回复于:2003-10-30 13:06:58
引用:
编译成功后,系统会在/lib/modules目录下生成一个2.4.20子目录
我也感觉问题没解决,这个过程没头绪...
楼上大哥的这句话好象不对,编译成功后,应该是在/lib/modules里边生成一个2.4.20-8custom的文件夹,所有modules,在这里:)
谢谢各位,学到不少东东 ...
以后有问题还要向大家多多请教....
继续编译,争取做到熟练:)
双眼皮的猪 回复于:2003-10-30 13:21:56
引用:
1.你前后两次操作有没有添加modules?
而make modules_install 未用,system.map未替换,
却取得了成功?
看来mkinitrd到底做了什么,以及生成的initrd文件我们没有搞清楚
2.为什么initrd的错误会导致根本不存在的SCSI的BusLogic module出错?
难道是内核报错的bug?因为很多的内核compile上都出现这问题?
看来mkinitrd到底做了什么,以及生成的initrd文件我们没有搞清楚
非常感谢提出意见,我们把这个帖子一直顶下去如何?
我来解答一些问题:
在把新核心放进/boot之后,我觉得,在grub.conf里边指定一下,然后制作不制作initrd.img我个人认为无所谓,我的是IDE硬盘,因为这个你可以在grub.conf里边写initrd /initrd-2.4.20-8.img的这个地方改成no initrd,同样是可以启动的,因为initrd的存在是由于你使用了ext3格式以及SCSI磁盘.
是否make modules我觉得也没什么?这里我有点疑问...
make modules之后是否把编译好的modules放到/lib/modules/2.4.20-8custom去了?还是在make modules_install之后才放到那里去?
insmod和modprobe应该都是在/lib/modules/相应文件夹里查找模块的吧...
如果我make modules,modules 编译了,但是没安装?这又是个什么意思?
也就是,俺想知道make modules之前之后系统有哪些地方改变了.
make modules_install之前之后系统又有哪些地方改变了?
make install又是起什么作用,干什么的?
System.map如网中人大哥所说,自动更新:)
至于initrd.img
我有一点浅见:
initrd.img类似于ramdisk,在这里我写过:
http://chinaunix.net/forum/viewtopic.php?t=169044
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下有没有啥
initrd.img这里边主要是一些驱动,里面有buslogic.o文件,ext3.o等,而我在vm下为什么编译不成功,是因为vm中要求BusLogic做vm中SCSI的驱动...
所以会出错....但是为什么SCSI就会出错?我不大清楚...
我在vm当前系统中lsmod里边出现了BusLogic ...
双眼皮的猪 回复于:2003-10-30 13:29:40
顶...
cau_eric 回复于:2003-10-30 13:54:48
十分建议你去搞本书系统的看一下,你的问题基本就明白了!
双眼皮的猪 回复于:2003-10-30 13:58:10
我有,但书上讲的不会这么仔细...:)
如果你知道,你告诉我啊.....
书本上只会讲怎么做,但很少看见讲内部机理....
cau_eric 回复于:2003-10-30 14:06:04
多看几本书罗!
双眼皮的猪 回复于:2003-10-30 14:22:56
引用:原帖由 "cau_eric"]多看几本书罗! 发表:
这样说来,想必兄弟你也看过很多书,推荐几本好的啦...
:oops: :oops: :oops:
看书对实践无用,我是看了书实践的时候碰到问题才来问,又不是完全不看书....
大哥有什么意见就提吧....
網中人 回复于:2003-10-30 15:12:04
你再仔細看看 menu.lst 中的
root
kernel
這兩行,再回來重看我講的?
sky-walker 回复于:2003-10-30 15:24:49
"是否make modules我觉得也没什么"
如果在make menuconfig中对模块做了修改,make modules就需要啦(不要说我这是废话 :cry: )
"make modules之后是否把编译好的modules放到/lib/modules/2.4.20-8custom去了?还是在make modules_install之后才放到那里去?"
据我分析,应该是在make modules之后存到/lib/modules/xxxxx,
因为在建造modules时有一步mv /lib/modules/xxx /lib/modules/xxx-old;
而make modules_install应该是把modules patch 进kernel
"也就是,俺想知道make modules之前之后系统有哪些地方改变了.
make modules_install之前之后系统又有哪些地方改变了?
make install又是起什么作用,干什么的? "
需要对make命令及Config文件的理解,找一本关于gcc的书,稍微看一下,就会知道
"System.map如网中人大哥所说,自动更新:) "
这仅限于单一kerne,对于多内核,很有可能出问题,因为我记得在《LDD》中的
oops描述中建议对每个system.map做一下rename
即:
*/boot/vmlinuz-2.4.x
*/boot/vmlinuz-2.4.y
*/boot/System.map-2.4.x
*/boot/System.map-2.4.y
我觉得根据最小化系统错误检测原则,对于单一kernel也做同样的事
对了,你为什么不做个多kernel的grub menu.1st,这样好恢复呀
双眼皮的猪 回复于:2003-10-30 15:29:02
谢谢,我的grub启动菜单是三个
2.4.20-8
2.4.20-9
2.4.20-10
呵呵...几个内核都丢那里在,看情况启动...
双眼皮的猪 回复于:2003-10-30 15:32:53
引用:
如果在make menuconfig中对模块做了修改,make modules就需要啦(不要说我这是废话 )
我的目标是做一个服务器内核出来,短暂时间不管它,不需要modules,直接全部进kernel,所以我对make modules不敏感:)
谢谢指教...
看书去咯...
網中人 回复于:2003-10-30 15:38:04
嗯... 我的理解是:
make modules 只是將 modules 產生在 /usr/src/linux-xxxx 底下。
make modules_install 才會 copy 到 /lib/modules/xxxx 那邊。
要不然跑一下如下流程:
# mv /lib/modules/xxx /lib/modules/xxx.bak
# make modules
# ls /lib/modules
# make modules_install
# !ls
sky-walker 回复于:2003-10-30 15:52:46
"而我在vm下为什么编译不成功,是因为vm中要求BusLogic做vm中SCSI的驱动...
所以会出错....但是为什么SCSI就会出错?我不大清楚...
我在vm当前系统中lsmod里边出现了BusLogic ..."
这正是我关心问题的所在 :shock:
而且有的人确实有一个scsi硬盘,也选择了BusLogic,但奇怪的是:
居然和没有选择BusLogic出现一样的错误;
甚至,在因为GTK stuff fail而安装GTK patch时也出现这样的错误!!
我觉得有三个可能:
1.kernel 出错报告代码有bug
2.module的潜在依赖性
3.BusLogic.c中有错(possiability's small,大多数服务器都可以正常工作)
我想解决这些问题最彻底的办法是: 阅读研究有关代码(虽然很难)
而我读过的代码中,没有关于sys init的,驱动倒是读过,但由于一般不接触SCSI,
所以.....
真要按照这个方法解决上面的问题,我的层次还远不够,2(study hard)
:!:
双眼皮的猪 回复于:2003-10-30 16:03:31
相信您有一天一定可以做到的....
加油,我们这些小菜鸟还要向您学习....
网中人大哥或许知道呢...
cau_eric 回复于:2003-10-30 16:29:25
厉害!我来凑个整!ha
zorrozolo 回复于:2003-10-30 18:24:40
vmware 里用ide的硬盘安装系统编译内核还会包错吗?
sky-walker 回复于:2003-10-30 23:33:15
引用:原帖由 "網中人" 发表: 嗯... 我的理解是:
make modules 只是將 modules 產生在 /usr/src/linux-xxxx 底下。
make modules_install 才會 copy 到 /lib/modules/xxxx 那邊。
要不然跑一下如下流程:
# mv /lib/modules/xxx /lib/modu..........
对,
网中人大哥
(if (you.age==year(y=33)||you.age>;=year(y=23))), :P
谢谢再次指出我的错误 :oops:
那/lib/modules/中的模块是由mkinitrd做成xxx.img,然后由grub读入?
还有LABLE的问题
用e2label导入的label是否适合于EXT3 fs?
grub读入menu.1st中的LABEL和/etc/fstab里的有关吗?
root=LABEL=/和root=/dev/hdxx的可用性到底遵循什么原则?
root=LABEL=/hda=ide-sici表示什么意思?
hehe, grub没怎么搞过(一直用LILO),问的多了些,不好意思 :)
双眼皮的猪 回复于:2003-10-31 09:15:03
mkinitrd好象是你做的时候是这么做的..
mkinitrd "你指定的路径" /lib/modules/模块所在目录
是一个初始化境象...放系统初始化的驱动程序...
用scsi硬盘的一定要有这个东东...
因为scsi的驱动放在这里...太大了,不好编译进内核...
所以就放在initrd.img里边...开机启动的时候会释放...
我就知道这么点,说不定还是错的...
请指教...
網中人 回复于:2003-10-31 13:10:45
1) mkinitrd 需要先做出一個 virtual file system ,其內要有 etc, lib 等目錄,然後將相關 module 抄進去,也要設好 etc 的項目。最後用 mkinitrd 產生 image ,再置於 /boot 內,由 boot loader 讀取。
2) e2label 可用於 ext3 。其實 ext3 與 ext2 只差在 journaling 而已。表面來說,其它可被視為共通的。
3) 若 hdd 經常抽換的話,用 LABEL 比較靈活。不管插到哪個 IDE 或 master/slave ,或 SCSI ID,都抓得到。但,要是灌多重系統(主要學習用,真實工作環境中很少碰到),那就有可能碰到 LABEL 衝突。這時,用 /dev/hdxx 是較為精確,但就不夠靈活。自己選適合的及想辦法解決就是了。
4) ide 可以模擬為 scsi 。端視系統設定要求。若沒必要,盡量單純化。
5) 學習 grub 可從 info grub 開始。但要注意 grub 的 root(/) 跟 kernel 的 root(/) 是不一樣的。前者指 /boot 所在,後者才是 / 。
網中人 回复于:2003-10-31 13:14:22
補:
grub 跟 fstab 用的 LABEL 都是一樣的。請 man e2label 。
但 fstab 是在 kernel 載入之後,進入開機程程序才被 init 讀取 remout 用的。grub 要讀取 LABEL ,則主要是要載入 kernel 。兩者的層次有別。
双眼皮的猪 回复于:2003-10-31 13:17:57
经典。。。。
建议给网中人加精......
高人...
回去补英语,好看英文文章...
双眼皮的猪 回复于:2003-11-03 11:09:02
引用:原帖由 "cau_eric"]编译内核后只要make install就可以了! 发表:
这个帖子已经沉下去了,但是有点问题,再顶一下...
兄台这句话其实是不对的,make install是不一定要做的...
在make modules_install之后呢,只需要更新System.map,
而并不一定需要make install
make install之后就会在/lib/modules里边生成一个2.4.20-8custom
也就是当前版本的内核2.4.20-8后加了一个custom,而且重新启动后
你的grub就多了一个菜单...
也就是****custom,我不喜欢这样哦...
make install不一定一定要用....顶一下....说明一下...
網中人 回复于:2003-11-03 13:12:10
或許,看一下 Makefile ,比較一下 modules_install 跟 install 的差異就是了。
我個人覺得:
* install 是一個"自動"過程,裡面也包含了 modules_install
只要跑 modules_install ,那就會將 make modules 產生的 modules 複制到 /lib/modules/<version>; 之下。
若 <version>; 不存在,則建立之。
這個 <version>; 叫甚麼名字?請看 Makefile 前 5 行就有答案了。
双眼皮的猪 回复于:2003-11-03 15:50:44
在make modules的时候。正如您起先教导的一样...的确。生成的modules的确也都在/usr/src/linux-x.y.z里边,然后在make modules_install之后,才会在/lib/modules里边新建一个目录...
make install好象是包括了好几个步骤....
Makefile前5行啊:
VERSION=2
PATCHLEVEL=4
SUBLEVEL=20
EXTRAVERSION=-8CUSTOM
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION=-8CUSTOM)
2.4.20-8CUSTOM,原来如此,谢谢网中人大哥...
sky-walker 回复于:2003-11-03 16:58:44
介绍一个据说compile success rate 达到 99%的编译方法
主要分两步
1.技术阶段
cd /usr/src/linux-2.4.x
make mrproper (maybe no)
edit Makefile file
change "EXTRAVERSION=" 改成有你特色的文字, 比如:
EXTRAVERSION=10me
make menuconfig or make xconfig
make dep
make bzImage
make modules
make modules_install
cp System.map /boot/System.map-2.4.7-10me
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.7-10me
#new-kernel-pkg --install --mkinitrd --depmod 2.4.7-10me
2.信仰阶段
在胸前多划几个十字,求基督耶稣能眷顾你一会 :lol:
-------------------------------------------------------------
还有对于make install的理解,可以看看
其makefile文件,以及/sbin/installkernel script
双眼皮的猪 回复于:2003-11-03 17:06:54
这个做法我在http://www.douzhe.com/linux里边看过,是bjchenxu先生搜集到的文章里有一篇是写这个的 ...
您可以去看一下哦...
http://www.douzhe.com/linux/15__kernel/15015.htm
sky-walker 回复于:2003-11-03 17:25:36
真正的作者是"老农",CU的元老级人物,
由于某些不为人知的原因,像无双.老农......等等都离开CU :cry: :cry:
还好,还有像弱智,科学球...等大哥没有离开,
再者,还有"网中人"这样高级水准的大哥,CU还是有奔头的
-------------------------------------------------------------------
前一个帖子中
new-kernel-pkg --install --mkinitrd --depmod 2.4.7-10me
这一行挺新鲜,没见过噢
双眼皮的猪 回复于:2003-11-03 19:14:48
CU是最好的UX论坛哦...
只是有时候不太稳定,而且什么连接数据库出错...
有时候又上不来....
不知道各位老大是否可以改善一下....
访问量太大了哦....呵呵....
老农 回复于:2003-11-10 01:53:04
引用:原帖由 "sky-walker" 发表: 真正的作者是"老农",CU的元老级人物,
由于某些不为人知的原因,像无双.老农......等等都离开CU :cry: :cry:
还好,还有像弱智,科学球...等大哥没有离开,
再者,还有"网中人"这样高级水准的大哥,CU还是有奔头..........
汗。。。
俺不是什么元老,浪迹江湖而已。
俺都不知道说的是俺写的什么。。。
找俺和无双、弱智(sinokonka)很容易啊,签名里有地址。
老农 回复于:2003-11-10 14:12:03
原因在《站务交流》里可以看出来,
http://www.loveunix.net/index.php?showtopic=5614
也是一些思考。
双眼皮的猪 回复于:2004-06-15 14:52:40
好怀念当初来CU的日子啊~呵呵~怀念这篇帖子,拉出来再顶一下~
selina270 回复于:2006-03-09 00:28:11
我看完了以后,我看到好多的人都是一知半解的。
有没有说得确定些的。如sici 中的
是怎么看的。
barterr 回复于:2006-03-09 09:56:17
先顶一下。留着慢慢看。多谢双眼皮猪,帮翻出这么多资料。
barterr 回复于:2006-03-11 01:19:10
用了差不多两个小时,终于看完了。结论是:如果linux没有运行在 vmware下,比较好搞定。如果linux是运行在vmware下,并且主系统用的是IDE硬盘,vm用的是虚拟的scsi硬盘,那就很难搞了。
双眼皮猪好像也没搞定?
很欣赏网中人的一句话:关键是在重新编译的过程中学到了什么。这句话让我为自己的无能找到了托词。
向前辈们致敬!
lavencious 回复于:2006-03-24 19:07:46
好像2.6版内核比以前好编译,上一楼说的太好了!
zhangtieing 回复于:2007-12-26 18:16:37
首先说一下:双眼皮的猪写的《菜鸟编译Linux内核》不错,顶一下
用的vmware嘛,注意下面模块有的必须编译进内核,有的以模块形式存在,才能正常启动,不是grub的问题,我遇到同样的情况,现已解决:
**************vmware下面编译内核必选的选项****************************
如果你在vmware下重新编译内核,硬盘用的是scsi的,以下选项必选:
Device Drivers --->;SCSI device support --->;<*>; SCSI disk support
Device Drivers --->;SCSI device support --->;SCSI low-level drivers --->; <*>; BusLogic SCSI support
Device Drivers --->; Fusion MPT device support --->;<M>; Fusion MPT (base + ScsiHost) drivers和<M>; Fusion MPT misc device (ioctl) driver(这个要不要,不确定)
注意:只能选模块方式,直接编译进内核,就出错,不知道为什么,这个浪费了我好多时间才找到,编译了几十次的成果。
出错信息如下:No module mptbase found for kernel vmware。。。。。。。
Device Drivers --->; USB support --->;<*>; USB Mass Storage support
Device Drivers --->; Networking support --->;Ethernet (10 or 100Mbit) --->; <*>; AMD PCnet32 PCI support(看到文章说这个必选,应该是网卡吧)
从上面的问题可以看出,可能是file system的设置问题,在mvware中如果用的linux是ext3和scsi的接口硬盘,还得有个initrd-XXX.img文件,要不进不了系统,但也不一定要重新编译,上面这些“必须模块”一般都已经编译成模块存放在系统中了,可以将其复制到内核中,改一下内核配置文件即可,详情可参考文章:
http://hi.baidu.com/shenlang277/blog/item/593cccbf36d2520919d81fdf.html
根据其中的例子找到相应的缺省模块加入内核即可
[ 本帖最后由 zhangtieing 于 2007-12-26 18:17 编辑 ]
samewhere 回复于:2009-02-11 14:21:35
这问题也是折腾死了我无数脑细胞,现在依然没有得到解决。。。。。。。。。:em11:
|