grub中常见kernel参数
有时候安装linux时会使用原有的grub,然后自己编辑menu.lst文件添加新启动项,而不选择安装grub。这样经常会造成系统不能启动的问题,会有各种报错。比如我碰到的 CentOS不能启动,报
VFS: cannot open root device "/dev/sda10" or unknown-block(0,0) please append a correct "root=" boot option kernel panic not syncing: VFS: unable to mount root fs on unknown-block (0,0)Puppy不能启动,报
Searching for Puppy files in computer disk drives pup_400.sfs not found. Dropping out to initial-ramdisk console...都是内核参数不正确的原因。到网上搜了一下,内核参数在各个发行版都不同,不是grub里的统一的参数。找了一些常见的参数,以备查阅。 上面两个问题,CentOS是添加kernel参数"rhgb quiet"后正常启动(应该是rhgb的问题,跟quiet关系不大)。rhgb是"Red Hat Graphical Boot"的意思,quiet是安静启动的意思。也就是在menu.lst(grub2为grub.cfg,下同)中的kernel行(grub2中是linux行,下同)后面加上"rhgb quiet"这两个参数。而puppy的问题添加"ide=nodma acpi=off"这两个参数之后恢复正常。其中起作用的是"ide=nodma"。这两个参数一个是关闭acpi,一个关闭dma(关于acpi与dma请自己搜索相关资料)。 其他常见参数有: root=root_path 这个是设置根分区的位置,一般可以省略。前面root命令设置的根分区是grub的表示形式(如root (hd0,10) ),而此处root目录是linux的表示形式(如 root=/dev/sda10 也有root=UUID=uuid_number root=LABEL=partition_label 等形式)。有些发行版会设置root=/dev/ram0,是启动时将根设置在内存,再进行根目录的转换,此时会有一个ramdisk_size参数设置初始RAM盘的大小。 ro/ rw 意思就是read only /rewritable ,设置根目录权限,一般可以省略。 vga=normal 设置启动的模式。如果要在虚拟终端中使用图形等的话可能需要更改此项。 single 以单用户模式启动,当忘记root用户的密码时,可以加上此内核参数启动后修改密码。 另外从网上查到puppy的默认内核参数有
puppy acpi=strict acpi=noirq pci=biosirq pci=nosort irqpoll routeirq其他各发行版参数可查阅相应文档。 另外此处提到的内容适用grub,grub2请视情况更改。