关于Fedora 16 安装后错误FATAL: No or empty root= argument

0
4879

前几天本来折腾安装Debian,可是由于手头上的镜像版本太低的缘故,安装成功以后由于显卡驱动的问题,无法进入桌面。于是转向Fedora,下载了DVD x86_64的mirror,在windows7下引导Grub4dos,这个就是无非几句bcdedit,如果没有用过,可以参考MS的原文,需注意的是在设置grldr.mbr的时候使用反斜杠“\”。

下例以grldr和grldr.mbr放在C盘为准(系统盘目录):

1
2
3
4
5
bcdedit /create /d “GRUB4DOS” /application bootsector
bcdedit /set {UUID} device partition=C:
bcdedit /set {UUID} path \grldr.mbr
bcdedit /displayorder {UUID} /addlast
bcdedit /timeout 10

弄完以后用虚拟光驱加载Fedora 16镜像,将isolinux中的initrd.img 和vmlinuz复制到U盘根目录,然后就是复制镜像到U盘。重启windows7,选择GRUB4DOS,然后选择commandline。

通过ls来获取U盘的位置(下例以U盘为hd1),当然了可以用Tab来补全。输入以下:

1
2
3
kernel (hd1,X)/vmilinuz linux askmethod
initrd  (hd1,X)/initrd.img
boot

安装时选择hard driver然后根据提示选择U盘。即可顺利安装,其中kernel 中参数linux askmethod 是为了选择hard driver从而离线安装,如果你的带宽允许,当然就不用这个参数了,如果是4M以下的水管,那就乖乖加上吧,要不然安装过程等死你。

安装过程中,会提示Grub2的安装,当然安装了,至于mbr自己考虑。

安装完成后同样进入Grub4dos的commandline,下例以单独有boot分区为准:

1
2
3
kernel (hd0,X)/vmlinuz.XXXXXXXX
initrd (hd0,X)/initramfs.XXXXXX
boot

于是如标题所言的错误出现了,No or empty root= argument,刚开始以为在kernel前没有指定root,然后在kernel前加了一句:

1
root (hd0,X)

错误提示依旧,然后进入live cd,查看kernel 后面指定root的位置。原来如此,于是改成以下:

1
2
3
kernel (hd0,X)/vmlinuz.XXXXXXXX root=/dev/sdaX
initrd (hd0,X)/initramfs.XXXXXX
boot

成功进入Fedora 16的桌面。

当然我也看了网上所说的,直接引导grub2的core.img,也成功进入。

1
2
3
kernel (hd0,X)/grub2/core.img
initrd (hd0,X)/initramfs.XXXXXX
boot

还有就是有单独boot分区的话,可以用下面的来进入,此方法是引导grub2,然后在选择Fedora 16:

1
2
3
root   (hd0,X)
chainloader  +1
boot

在网上搜的时候很多都是一篇文章的抄袭,所以简单写写,希望对于遇到此问题的有所帮助。

附:

grub4dos官方下载:下载

错误代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
dracut: FATAL: No or empty root= argument
 
Description of problem: While trying to install Fedora 16 via pxeboot on server
with UEFI support I got following error.
 
[ 2.965035] Initializing XFRH netlink socket
[ 2.965130] NET: Registered protocol family 10
[ 2.965263] Mobile IP06
[ 2.965265] NET: Registered protocol family 17
[ 2.965274] Registering the dns_resoluer key type
[ 2.965755] registered taskstats version 1
[ 2.974176] Inn: No TPN chip found. actiuating TP?—bypass!
[ 2.975691] Magic number: 0:21:88
[ 2.975734] acpi INT3FOD:00: hash matches
[ 2.982725] rtc_cmos 00:07: setting system clock to 2012-02-23 17:05:28 UTC
(1330016728)
[ 2.982987] usb 2-1: new high speed USB device number 2 using ehci_hcd
[ 3.134852] Initializing network drop monitor seruice
[ 3.170109] Freeing unused kernel memory: 940k freed
[ 3.186944] Urite protecting the kernel read-only data: 10240k
[ 3.210599] Freeing unused kernel memory: 1260k freed
[ 3.235300] Freeing unused kernel memory: 1584k freed
[ 3.248874] usb 2-1: New USB device found. idUendor=8087. idProduct=0024
[ 3.248877] usb 2-1: New USB device strings: l1fr=0. Product=0. SerialNumber=0
[ 3.249403] hub 21:1.0: USB hub found
[ 3.249741] hub 21:1.0: 6 ports detected
[ 3.361476] dracut: dracut—01318.fc16
[ 3.384353] dracut: FATAL: No or empty root= argument
[ 3.400844] dracut: Refusing to continue
[ 3.448365] dracut Warning: Signal caught!
dracut Uarning: Signal caught!
[ 3.479571] dracut Uarning: dracut: FHTHL: No or empty root= argument
dracut Uarning: dracut: FQTHL: No or empty root= argument
[ 3.511697] dracut Uarning: dracut: Refusing to continue
dracut warning: dracut: Refusing to continue
[ 3.545637] usb 2-1.2: new low speed USB device number 3 using ehci_hcd
[ 3.574489] Kernel panic — not syncing: attempted to kill init!
[ 3.590857] Pid: 1, comm: init Not tainted 3.1.0-7.fc16.x86_64 #1
[ 3.606497] Call Trace:
[ 3.622165] [<ffffffff814acb8e>] panic+0x91/0x1a5
[ 3.638093] [<ffffffff8105ae35>] do_exit+0x9e/0x764
[ 3.653957] [<ffffffff810668d4>] ? recalc_sigpending+0x7e/0x82
[ 3.669971] [<ffffffff8105b780>] do_group_exit+0x7a/0xa2
[ 3.685386] [<ffffffff8105b7bf>] sys_exit_group+0x17/0x17
[ 3.701150] [<ffffffff814bc482>] system_call_fastpath+0x16/0x1b

Grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
 
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="${saved_entry}"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi
 
function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
 
function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}
 
set timeout=5
### END /etc/grub.d/00_header ###
 
### BEGIN /etc/grub.d/01_users ###
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.8F2F67FABDA317038172AE35927A81ED3B6B08DDD589A29D77A27A40A40ED0C56E4E58C5EF4A65D42A1FD85E0BF1BF660E91DF0C9E2589A5AF64B1B3C962C871.55AE0B4AD22B9D19EA235CB2FE5F7E21DBE28CD215435A1D3094ED681A8317D444B90C104687016325CB24342E883CA535094FEA69D0C8917ACD4FBFB02F1252
### END /etc/grub.d/01_users ###
 
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora Linux, with Linux 3.1.0-7.fc16.x86_64' --class fedora --class gnu-linux --class gnu --class os {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos3)'
        search --no-floppy --fs-uuid --set=root 6731e9a1-2f6b-4c55-b433-474b5c2dd9d4
        echo    'Loading Linux 3.1.0-7.fc16.x86_64 ...'
        linux   /vmlinuz-3.1.0-7.fc16.x86_64 root=UUID=793e4fc3-c8d2-4eaf-a2ec-0ce25c33671d ro rd.md=0 rd.lvm=0 rd.dm=0  KEYTABLE=us quiet rhgb LANG=zh_CN.UTF-8 rd.luks=0
        echo    'Loading initial ramdisk ...'
        initrd  /initramfs-3.1.0-7.fc16.x86_64.img
}
menuentry 'Fedora Linux, with Linux 3.1.0-7.fc16.x86_64 (recovery mode)' --class fedora --class gnu-linux --class gnu --class os {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos3)'
        search --no-floppy --fs-uuid --set=root 6731e9a1-2f6b-4c55-b433-474b5c2dd9d4
        echo    'Loading Linux 3.1.0-7.fc16.x86_64 ...'
        linux   /vmlinuz-3.1.0-7.fc16.x86_64 root=UUID=793e4fc3-c8d2-4eaf-a2ec-0ce25c33671d ro single rd.md=0 rd.lvm=0 rd.dm=0  KEYTABLE=us quiet rhgb LANG=zh_CN.UTF-8 rd.luks=0
        echo    'Loading initial ramdisk ...'
        initrd  /initramfs-3.1.0-7.fc16.x86_64.img
}
### END /etc/grub.d/10_linux ###
 
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
 
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
        insmod part_msdos
        insmod ntfs
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 864661FC4661ED7D
        chainloader +1
}
### END /etc/grub.d/30_os-prober ###
 
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
 
### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
 
### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###
~

发表回复

62 ÷ 31 =