[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 升级内核后无法启动进入Linux



今天我再试了试,进入ash后用mount可以挂载成功,只是必须显式地指定文件系统类型:-text3。我平常习惯都是不指定的,没想到这里必须指定。

我是在老内核下试的,新内核就干脆没试了。我想要想解决新内核的问题,首先应该让老内核能用起来,因为这个内核本身应该是好的,用了好长时间了。

要进入ash之前更多的信息是:
Begin: Mounting root file system... ...
Begin: Running /scripts/local-top ...
ide0: I/O resource 0x1F0-0x1F7 not free.
ide0: ports already in use, skipping probe
ide1: I/O resource 0x170-0x177 not free.
ide1: ports already in use, skipping probe.
Done
   Check root= bootarg cat /proc/cmdline
   or missing modules, devices: cat /proc/modules ls /dev
ALERT! /dev/sda9 does not exist. Dropping to a shell!

进入ash后,cat /proc/cmdline的结果为:
root=/dev/sda9 ro

cat /proc/modules的结果为:
vfat 11872 0 - Live 0xf8896000
fat 46652 1 vfat, Live 0xf891b000
ext3 119240 1 - Live 0xf893f000
jbd 52456 1 ext3, Live 0xf88c3000
mbcache 8356 1 ext3, Live 0xf889a000
usb_storage 72000 0 - Live 0xf8908000
ide_generic 1408 0 [permanent], Live 0xf8890000
sd_mod 19040 2 - Live 0xf88bd000
generic 4868 0 [permanent], Live 0xf8893000
ide_core 110504 3 usb_storage,ide_generic,generic, Live 0xf88d3000
ehci_hcd 28136 0 - Live 0xf8826000
uhci_hcd 21164 0 - Live 0xf8889000
ata_piix 13896 1 - Live 0xf8884000
libata 89396 1 ata_piix, Live 0xf889f000
scsi_mod 124168 3 usb_storage,sd_mod,libata, Live 0xf8844000
usbcore 112644 4 usb_storage,ehci_hcd,uhci_hcd, Live 0xf8867000
r8169 28360 0 - Live 0xf883c000
thermal 13608 0 - Live 0xf8837000
processor 28840 1 thermal, Live 0xf882e000
fan 4804 0 - Live 0xf8821000

ls /dev的结果为:
bus     ptypf   sdb13   tty26   tty51   ttyp7
console ram0    sdb2    tty27   tty52   ttyp8
disk    ram1    sdb5    tty28   tty53   ttyp9
full    ram10   sdb6    tty29   tty54   ttypa
hpet    ram11   sdb7    tty3    tty55   ttypb
input   ram12   sdb8    tty30   tty56   ttypc
kmem    ram13   sdb9    tty31   tty57   ttypd
kmsg    ram14   snapshot        tty32   tty58   ttype
mem     ram15   tty     tty33   tty59   ttypf
null    ram2    tty0    tty34   tty6    urandom
port    ram3    tty1    tty35   tty60   usbdev1.1_ep00
psaux   ram4    tty10   tty36   tty61   usbdev1.1_ep81
ptmx    ram5    tty11   tty37   tty62   usbdev1.2_ep00
ptyp0   ram6    tty12   tty38   tty63   usbdev1.2_ep83
ptyp1   ram7    tty13   tty39   tty7    usbdev2.1_ep00
ptyp2   ram8    tty14   tty4    tty8    usbdev2.1_ep81
ptyp3   ram9    tty15   tty40   tty9    usbdev3.1_ep00
ptyp4   random  tty16   tty41   ttyS0   usbdev3.1_ep81
ptyp5   sda     tty17   tty42   ttyS1   usbdev4.1_ep00
ptyp6   sda1    tty18   tty43   ttyS2   usbdev4.1_ep81
ptyp7   sda2    tty19   tty44   ttyS3   usbdev5.1_ep00
ptyp8   sda5    tty2    tty45   ttyp0   usbdev5.1_ep81
ptyp9   sda6    tty20   tty46   ttyp1   vcs
ptypa   sdb     tty21   tty47   ttyp2   vcs1
ptypb   sdb1    tty22   tty48   ttyp3   vcsa
ptypc   sdb10   tty23   tty49   ttyp4   vcsa1
ptypd   sdb11   tty24   tty5    ttyp5   zero
ptype   sdb12   tty25   tty50   ttyp6
Debian系统安装在/dev/sdb9,进入ash后mount这个分区能成功,所以grub中指定的位置并没有错。

希望这些补充信息能有助于大家帮我解决这个问题。

在 08-4-10,shell909090<shell909090@gmail.com> 写道:
> Mickey Fox 写道:
> debian编译新内核安装的时候是不修改旧内核项目的,所以我觉得特别奇怪。
它也应该不会更新grub吧(menu.lst除外)?

> 本本的SATA模拟成IDE改成启用了

> 如果确实是这种情况,它会在什么地方改呢?改了BIOS信息(这会影响到新旧两版内核)?还是内核相关的配置(应该不会影响旧内核)?

补充:在挂载根分区失败后进入ash,用里面的mount挂载分区都失败,大致的错误信息都是Invalid
> file
> system
options(凭记忆写的)。因为fdisk不可用,我就用/dev目录下hd和sd开头的分区试的,mount时并没有带-o参数。
> 怎么会这样呢?这个看上去是你的分区格式被破坏了。你试试加分区格式挂载看看,再试试别的参数。要是死活挂不上去,那你就知道问题在哪里了。
> 要是挂的上去,那把跟分区的分区写入到menu.lst中试试看。
> 在 08-4-10,shell909090<shell909090@gmail.com> 写道:

> 看提示,是不是挂在了initrd.img中的脚本试图加载root分区的时候了?
我记得这时候的分区确定是根据grub的root=信息来的,如果你的跟分区修改了(或
者硬盘配置修改了,本本的SATA模拟成IDE改成启用了,等等),就会造成跟分区找
不到,进而无法启用。
当然,也有可能是grub中的root=信息被改了,不过我记得debian编译新内核安装
的时候是不修改旧内核项目的。

Mickey
> Fox 写道:

> 我的机器是Windows
> XP和Debian
Etch双启动。昨天在Debian下编译2.6.24.4的内核成功,安装新内核后重新启动,发现进不了Linux了,停在了这一步:
Waiting
> for root file system ... ...
在这之前一些会有这样的信息:
hdc: cache flushes supported
> hdc: hdc1 hdc2 <hdc5 hdc6 hdc7 hdc8 hdc9 hdc10 hdc11 hdc12 hdc13>
ALERT!
> /dev/sda9 does not exist. Dropping to a
> shell!
可是在使用原来的内核时硬盘应该是sda和sdb的(两块硬盘)。

再次重启,选择升级前的2.6.18内核,仍然停在了这一步:
Waiting
> for root file system ...
> ...
但前面的信息略有变化,hdc变成了sda。

改用Kubuntu光盘启动,能够找到硬盘分区。

不知问题出在哪?新内核不行也罢了,为什么连回到旧内核都无法启动呢?

>
>
>

Reply to: