我曾经听到这么一个故事: 一个年轻的程序员问一个老程序员(一个比较牛逼的公司的CTO) 年轻程序员: 你为什么这么牛X., 就好像没有你不会的。老程序员: 积累的。年轻程序员: 怎么才能积累到您的程度呢。我每天都在积累。但是似乎都没有感觉到进步。老程序员: 我从20岁开始做到了一件事情,直到今天,而且尽可能地保证不间断。年轻程序员: 到底是什么? 老程序员: 我每天保证自己有2个小时在学习新的东西。
[转] Grub命令使用详解
Grub命令使用详解
- 命令索引:
- background
- 设置图形模式下的背景色。
- blocklist
- 输出文件的块清单标记。
- boot
- 引导已加载的操作系统或扇区链式加载器。
- bootp
- 通过BOOTP初试化网络设备。
- cat
- 显示指定文件的内容。
- chainloader
- 加载扇区链式加载器。
- clear
- 清屏幕。
- cmp
- 比较两个文件, 并且报告两者之间的不同的信息。
- color
- 改变菜单的颜色。
- configfile
- 将指定文件作为配置文件予以加载。
- debug
- 打开/关闭除错模式。
- default
- 把 NUM 项菜单设为缺省值。
- device
- 声明BIOS驱动器对应的实际物理设备。
- dhcp
- 通过DHCP初试化网络设备。
- displayapm
- 显示 APM BIOS 的相关信息。
- displaymem
- 显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。
- dump
- 显示诸多文件的内容。
- embed
- 如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。
- fallback
- 如果调用当前的菜单项时出现错误,则转移到 NUM 项后重试
- find
- 在所有分区上查找文件名, 并显示包含该文件的设备。如果设置了参数 --set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。
- fontfile
- 指定中文字体文件,并切换到简体中文显示方式。
- foreground
- 设置图形模式下的前景色。
- fstest
- 切换文件系统的试验模式。
- geometry
- 输出驱动器的相关信息。
- gfxmenu
- 使用 FILE 中的图形菜单。
- halt
- 关闭系统。
- help
- 显示内部命令的帮助信息。
- hiddenmenu
- 隐藏菜单。
- hide
- 通过在分区类型上置隐藏标志,隐藏指定分区。
- ifconfig
- 指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网络配置。
- impsprobe
- 通过一些循环操作,侦测出符合 Intel 多处理器规范 1.1/1.4 的 CPUs,以便于发挥其更好的效能。
- initrd
- 加载Linux格式的初始化虚拟盘, 并设置必要的参数。
- install
- 安装STAGE1到指定设备上,安装加载STAGE2需要的块列表到STAGE2上。
- ioprobe
- 侦测指定设备的 I/O 端口号。
- kernel
- 尝试载入主引导影像文件。
- lock
- 如果用户未被认证,则终止命令的执行。
- makeactive
- 将 root 设备置为活动分区。
- map
- 对设备进行映射。
- md5crypt
- 产生一个 MD5 格式的密码。
- module
- 对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确定核心的要求)。
- modulenounzip
- 与 'module' 类似, 但是自动禁用了解压缩。
- pager
- 没有参数时,切换页模式。
- partnew
- 创建一个新的主分区。
- parttype
- 改变指定分区(PART)的分区类型(TYPE)。
- password
- 设置密码。
- pause
- 终止命令的运行,并给出一段信息。任意键按下后,将继续。
- portmap
- 进行端口映射。
- quit
- 从 GRUB 命令行中退出。
- rarp
- 用 RARP 初始化网络设备。
- read
- 从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。
- reboot
- 重启系统。
- root
- 设置根分区。
- rootnoverify
- 类似`root'指令, 但不测试安装该分区。这用于有些系统装在 GRUB 能访问的磁盘区之外, 但仍需要设置正确的根分区的情况。有些需要安装分区才能确定的参数可能会有问题。
- run
- 运行一个为光盘启动而设计的引导文件(非模拟方式的)
- savedefault
- 将当前项设置为默认的引导项。
- scdrom
- 寻找系统的第一个 CD-ROM 驱动器,然后为其分配一个驱动器号以备后续使用(--install)。或者,用该驱动器中的可引导光盘启动系统。(--boot)。
- serial
- 初始化一个串口设备。
- setkey
- 改变键盘映射关系。
- setup
- 自动安装GRUB.
- splashimage
- 图形模式下载入背景图片文件。
- terminal
- 选择一个终端。
- terminfo
- 指定终端的功能。
- testload
- 以多种不同的方式读取文件(由FILE指定)的整个内容,并予以比较,以测试文件系统的代码。
- testvbe
- 测试所指定(MODE)的 VBE 模式。
- tftpserver
- 指定 TFTP 服务器的 IP 地址。
- timeout
- 设置在自动启动缺省菜单前所等待的秒数。
- title
- 命名菜单项。
- unhide
- 通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。
- uppermem
- 强制指定仅有(KBYTES) KB 的上位内存。
- vbeprobe
- 侦测 VBE 的信息。
- blocklist
- 用法: blocklist FILE
- 描述:
- 输出文件的块清单标记。
- boot
- 用法: boot
- 描述:
- 引导已加载的操作系统或扇区链式加载器。
- bootp
- 用法: bootp [--with-configfile]
- 描述:
- 通过BOOTP初试化网络设备。如果使用了`--with-configfile'参数,此命令将会试图去加载一个特定的配置文件。
- cat
- 用法: cat FILE
- 描述:
- 显示指定文件的内容。
- chainloader
- 用法: chainloader [--force] FILE
- 描述:
- 加载扇区链式加载器。若使用了--force参数, 则忽略该扇区的启动标识的有效性。
- cmp
- 用法: cmp FILE1 FILE2
- 描述:
- 比较两个文件, 并且报告两者之间的不同的信息。
- color
- 用法: color NORMAL [HIGHLIGHT]
- 描述:
- 改变菜单的颜色。Normal 用于指定菜单项的未选中时的颜色,HIGHLIGHT 则用于指定菜单项的被选中时的颜色。如果你未指定 HIGHLIGHT 色,那么我们将使用 NORMAL 的反色值。颜色值的格式是 "FG/BG"。 FG 和 BG 是颜色的名称,如 下:black(黑), blue(蓝), green(绿), cyan(青), red(红), magenta(粉 红), brown(棕), light-gray(亮灰),dark-gray(暗灰), light-blue(浅蓝), light- green(淡绿), light-cyan(淡青), light-red(明红), light-magenta(浅 红), yellow(黄) 和 white(白)。注意,BG 的值只能是前八个。另外,若想使用闪烁的前景色,你在 FG 前使用前缀 "blink-" 即可。
- configfile
- 用法: configfile FILE
- 描述:
- 将指定文件作为配置文件予以加载。
- debug
- 用法: debug
- 描述:
- 打开/关闭除错模式。
- default
- 用法: default [NUM | `saved']
- 描述:
- 把 NUM 项菜单设为缺省值。
- device
- 用法: device DRIVE DEVICE
- 描述:
- 声明BIOS驱动器对应的实际物理设备。这条命令只用于grub命令行。
- portmap
- 用法: portmap prog_number vers_number
- 描述:
- 进行端口映射。
- dhcp
- 用法: dhcp
- 描述:
- 通过DHCP初试化网络设备。
- splashimage
- 用法: splashimage FILE
- 描述:
- 图形模式下载入背景图片文件。
- foreground
- 用法: foreground RRGGBB
- 描述:
- 设置图形模式下的前景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。注意他们都使用十六进制的值。
- background
- 用法: background RRGGBB
- 描述:
- 设置图形模式下的背景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。注意他们都使用十六进制的值。
- clear
- 用法: clear
- 描述:
- 清屏幕。
- displayapm
- 用法: displayapm
- 描述:
- 显示 APM BIOS 的相关信息。
- displaymem
- 用法: displaymem
- 描述:
- 显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。
- dump
- 用法: dump FROM TO
- 描述:
- 显示诸多文件的内容。注意,FROM 所指定的必须是一个 GRUB 文件,TO 所指定的必须是一个 OS 文件。
- embed
- 用法: embed STAGE1_5 DEVICE
- 描述:
- 如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。如果是个FFS分区, 则可嵌入到该设备饿`引导代码'区中。并输出 Stage 1.5所占的扇区数。
- fallback
- 用法: fallback NUM
- 描述:
- 如果调用当前的菜单项时出现错误,则转移到 NUM 项后重试
- find
- 用法: find [--set-root] FILENAME
- 描述:
- 在所有分区上查找文件名, 并显示包含该文件的设备。如果设置了参数 --set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。
- fstest
- 用法: fstest
- 描述:
- 切换文件系统的试验模式。
- gfxmenu
- 用法: gfxmenu FILE
- 描述:
- 使用 FILE 中的图形菜单。
- geometry
- 用法: geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]
- 描述:
- 输出驱动器的相关信息。在grub壳程序中, 你可以用这条命令设置驱动器参数为任意值。如果你省略了总扇区数, 则该值缺省有其它参数决定。
- halt
- 用法: halt [--no-apm]
- 描述:
- 关闭系统。如果APM(高级电源管理)功能存在,将使用 APM BIOS 关闭系统,除非指定了 `--no-apm' 选项。
- help
- 用法: help [--all] [PATTERN ...]
- 描述:
- 显示内部命令的帮助信息。要查看所有命令的帮助,请使用 `--all' 参数。
- hiddenmenu
- 用法: hiddenmenu
- 描述:
- 隐藏菜单。
- hide
- 用法: hide PARTITION
- 描述:
- 通过在分区类型上置隐藏标志,隐藏指定分区。
- ifconfig
- 用法: ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server=IP]
- 描述:
- 指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网络配置。
- impsprobe
- 用法: impsprobe
- 描述:
- 通过一些循环操作,侦测出符合 Intel 多处理器规范 1.1/1.4 的 CPUs,以便于发挥其更好的效能。
- initrd
- 用法: initrd FILE [ARG ...]
- 描述:
- 加载Linux格式的初始化虚拟盘, 并设置必要的参数。
- install
- 用法: install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]
- 描述:
- 安装STAGE1到指定设备上,安装加载STAGE2需要的块列表到STAGE2上。如果使用了选项'd', STAGE1总是试图使用安装STAGE2的驱动器, 而不是启动盘。STAGE2将加载在指定地址上, 如果未声明地址, 则自动检测。如果使用了选项 'p' 或 给出了配置文件, 将修改STAGE2的第一个数据块, 修正实际Stage2启动时使用的配置文件位置。对于Stage 1.5, 该值为 Stage 2的路径。如果安装的是Stage 1.5, 且指定了实际配置文件, 则将该配置文件路径写入Stage2中。
- ioprobe
- 用法: ioprobe DRIVE
- 描述:
- 侦测指定设备的 I/O 端口号。
- kernel
- 用法: kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]
- 描述:
- 尝试载入主引导影像文件。其它项将被作为内核的命令行参数而传递给内核。使用此命令以前,内核所用到的模块应该被重新载入。参数 --type 用于说明内核的类型,包括 "netbsd", "freebsd", "openbsd", "linux", "biglinux" 和 "multiboot"。参数 --no-mem-option 用于说明不必自动传递 Linux 的内存参数。
- lock
- 用法: lock
- 描述:
- 如果用户未被认证,则终止命令的执行。
- makeactive
- 用法: makeactive
- 描述:
- 将 root 设备置为活动分区。当然,此命令只对 PC 的硬盘主分区有效。
- map
- 用法: map [--status] [--hook] [--unhook] [--rehook] [[--read-only] [--fake-write] [--unsafe-boot] [--disable-chs-mode] [--disable-lba-mode] [--heads-per-cylinder=H] [--sectors-per-track=S] TO_DRIVE FROM_DRIVE]
- 描述:
- 对设备进行映射。这对于扇区链式引导是很有用的功能,比如 DOS。这里,目的驱动器(TO_DRIVE)可以是一个磁盘文件,即使用磁盘虚拟功能。注意,这要求磁盘文件是连续存放于分区中的。另外,若使用了 --read-only 参数,该功能将使`磁盘'处于只读;若使用了 --fake-write 参数,该功能将使`磁盘'处于假写,即可以"写入"数据,但是却并未记录到真实磁盘上; 若使用了 --unsafe-boot 参 数,该功能将使`磁盘'处于真实可写; 若使用了 --disable-chs-mode 参数,CHS 访问功能将被禁用; 若使用 了 --disable-lba-mode 参数, LBA访问功能将被禁用; H 和 S 指定了虚拟磁盘的物理参数。若使用 了 --status, --hook, --unhook,--rehook 诸参数之一, 那么其它的命令行参数将被忽略。
- md5crypt
- 用法: md5crypt
- 描述:
- 产生一个 MD5 格式的密码。
- module
- 用法: module FILE [ARG ...]
- 描述:
- 对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确定核心的要求)。剩余参数作为`模快命令行`传递, 象`kernel'命令一样。
- modulenounzip
- 用法: modulenounzip FILE [ARG ...]
- 描述:
- 与 'module' 类似, 但是自动禁用了解压缩。
- pager
- 用法: pager [FLAG]
- 描述:
- 没有参数时,切换页模式。如果使用了 FLAG 参数,那么它为`on' 时为开启, 为 `off' 时为关闭。
- partnew
- 用法: partnew PART TYPE START LEN
- 描述:
- 创建一个新的主分区。START 为起始扇区号,LEN 为其包含的扇区数,TYPE 为其分区类型。
- parttype
- 用法: parttype PART TYPE
- 描述:
- 改变指定分区(PART)的分区类型(TYPE)。
- password
- 用法: password [--md5] PASSWD [FILE]
- 描述:
- 设 置密码。当其处于菜单文件的首项时,将禁用所有的交互式菜单编辑功能,包括编辑菜单项(`e`)/进入命令行(`c`)。当正确输入密码 (由 PASSWD指定)后,载入新的菜单文件(由FILE指定)。如果你没有指定 FILE 项,那么上述被禁用的功能将被启用了。当然,你也可以将此命令用 到某个菜单项里,用以提高系统安全性。参数 --md5 说明密码(PASSWD)是使用md5crypt 加密的。
- pause
- 用法: pause [MESSAGE ...]
- 描述:
- 终止命令的运行,并给出一段信息。任意键按下后,将继续。
- quit
- 用法: quit
- 描述:
- 从 GRUB 命令行中退出。
- rarp
- 用法: rarp
- 描述:
- 用 RARP 初始化网络设备。
- read
- 用法: read ADDR
- 描述:
- 从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。
- reboot
- 用法: reboot
- 描述:
- 重启系统。
- fontfile
- 用法: fontfile FILE
- 描述:
- 指定中文字体文件,并切换到简体中文显示方式。
- scdrom
- 用法: scdrom [--install], [--bootcd]
- 描述:
- 寻找系统的第一个 CD-ROM 驱动器,然后为其分配一个驱动器号以备后续使用(--install)。或者,用该驱动器中的可引导光盘启动系统。(--boot)。
- run
- 用法: run FILE
- 描述:
- 运行一个为光盘启动而设计的引导文件(非模拟方式的)
- root
- 用法: root [DEVICE [HDBIAS]]
- 描述:
- 设 置根分区。设置根分区为指定设备(DEVICE), 然后尝试挂接该分区以得到分区大小(用于在ES:ESI中传递, 扇区链式启动方式要求这样)。 BSD 驱动类型用于启动 BSD 的核心启动), 和确定 BSD 子分区所在的 PC 分区。可选的磁盘偏移参数, 用于 BSD 核心确定有多少个 控制器在当前控制器前。比如: 假设同时有一个IDE和SCSI盘, 而BSD根分区在 SCSI盘上, 那么磁盘偏移就为1。
- rootnoverify
- 用法: rootnoverify [DEVICE [HDBIAS]]
- 描述:
- 类似`root'指令, 但不测试安装该分区。这用于有些系统装在 GRUB 能访问的磁盘区之外, 但仍需要设置正确的根分区的情况。有些需要安装分区才能确定的参数可能会有问题。
- savedefault
- 用法: savedefault
- 描述:
- 将当前项设置为默认的引导项。
- serial
- 用法: serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device=DEV]
- 描述:
- 初始化一个串口设备。UNIT 用于指定要使用的串口设备 (如,0 == COM1); PORT 用于指定端口号; SPEED 用于指定通讯的数率; WORD 为字长; PARITY 为奇偶类型(取 `no', `odd' 和 `even' 之一的值。); STOP 是停止位的长度值; 选项 --device 仅用于命令行模式,用以指定 tty 设备的文件名。默认值是这样的,COM1, 9600, 8N1。
- setkey
- 用法: setkey [TO_KEY FROM_KEY]
- 描述:
- 改 变键盘映射关系。把FROM_KEY映射为TO_KEY。这里的键必须是字母, 数字, 和以下特殊键: escape(转 义), exclam(!), at(@), numbersign(#), dollar($), parenright ()) , caret(^), ampersand(&), asterisk(*), plus(+), percent(%), minus(-), underscore(_), equal(=), parenleft[(], backspace(退 格), tab(制 表), bracketleft([), braceleft({), bracketright(]), braceright(}), enter(回 车), control(控 制), semicolon(;), colon(:), quote('), doublequote("), slash(/), backquote(`), tilde(~), shift(换 档), backslash(\), bar(|), comma(,), less(<), period(.), greater(>), question(?), alt(交 互), space(空格), capslock(大写), Fx(功能键) 和 delete(删除)。
- setup
- 用法: setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]
- 描述:
- 自 动安装GRUB. 这条命令使用更灵活的install命令将GRUB安装到指定设备上。如果给出了映象设备,将在该设备寻找GRUB,否则使用缺省的根 设备。根设备可用root指令指定。如果你确认系统的 BIOS 应该支持 LBA 模式, 但是 GRUB 却没有工作于该模式, 则请指定 `-- force-lba' 参数。如若你在命令行中已安装了一次 GRUB 可是,你却无法卸载 GRUB 程序所在的分区,请指定 `--stage2' 参数。
- terminal
- 用 法: terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]
- 描述:
- 选 择一个终端。当指定了多个终端以后, 按任意键方可继续操作。如果控制台和串口都被指定了, 那么你首先在其中按下键盘的终端将被首先选中。如果没有指定 任何参数, 那么此命令将显示出当前的终端设置; 参数 --dumb 用以指定一个哑终端, 否则即为 vt100 兼容型; 若使用了 --no- echo 参数, 屏幕上将不会回显输入的字符; 若使用了 --no-edit 参数, the BASH-like 的编辑功能将被禁用; 若使用 了 --timeout 参数, 该命令将等待数秒钟(由SECS指定); 可使用 --lines 指定最大的行数; 可使用 --silent 选项 关闭消息显示。
- terminfo
- 用法: terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ] [--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]]
- 描述:
- 指定终端的功能。如果此终端为 vt100 兼容型的,则可指定换码顺序 (即使用 \e 代表 ESC, ^X 代表控制码); 在未给任何参数的情况下,将给出当前配置信息。
- testload
- 用法: testload FILE
- 描述:
- 以多种不同的方式读取文件(由FILE指定)的整个内容,并予以比较,以测试文件系统的代码。输出看起来会有点儿混乱,但是,如果没有错误的话,`i=X, filepos=Y' 里的 X 和 Y 最后必得相等。如果测试即告成功,下一步即可试图载入内核了。
- testvbe
- 用法: testvbe MODE
- 描述:
- 测试所指定(MODE)的 VBE 模式。
- tftpserver
- 用法: tftpserver IPADDR
- 描述:
- 指定 TFTP 服务器的 IP 地址。
- timeout
- 用法: timeout SEC
- 描述:
- 设置在自动启动缺省菜单前所等待的秒数。
- title
- 用法: title [NAME ...]
- 描述:
- 命名菜单项。
- unhide
- 用法: unhide PARTITION
- 描述:
- 通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。
- uppermem
- 用法: uppermem KBYTES
- 描述:
- 强制指定仅有(KBYTES) KB 的上位内存。任何系统的地址变换将被取消。
- vbeprobe
- 用法: vbeprobe [MODE]
- 描述:
- 侦测 VBE 的信息。如果指定了一个模式(MODE 不为空),则仅显示其信息。
kernel command line 参数详解
- Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。
- 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。
- Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式:
- name[=value_1][,value_2]...[,value_10]
- “name”是关键字,内核用它来识别应该把“关键字”后面的值传递给谁,也就是如何处理这个值,是传递给处理例程还是作为环境变量或者抛给“init”。值的个数限制为10,你可以通过再次使用该关键字使用超过10个的参数。
- 首先,内核检查关键字是不是 `root=',`nfsroot=', `nfsaddrs=', `ro', `rw', `debug'或 `init',
然后内核在bootsetups数组里搜索于该关键字相关联的已注册的处理函数,如果找到相关的已注册的处理函数,则调用这些函数并把关键字后面的值作为
参数传递给这些函数。比如你在启动时设置参数name=a,b,c,d,内核搜索bootsetups数组,如果发现“name”已注册,则调用
“name”的设置函数如name_setup(),并把a,b,c,d传递给name_setup()执行。
- 所有型如“name=value”参数,如果没有被上面所述的设置函数接收,将被解释为系统启动后的环境变量,比如“TERM=vt100”就会被作为一个启动时参数。
- 所有没有被内核设置函数接收也没又被设置成环境变量的参数都将留给init进程处理,比如“single”。
- 常用的设备无关启动时参数。
- 1、init=...
- 设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,
- /bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 kernel panic:的错误。
-
- 2、nfsaddrs=...
- 设置从网络启动时NFS的启动地址,已字符串的形式给出。
-
- 3、nfsroot=...
- 设置网络启动时的NFS根名字,如果该字符串不是以 "/"、","、"."开始,默认指向“/tftp-boot”。
- 以上2、3在无盘站中很有用处。
-
- 4、no387
- 该选项仅当定义了CONFIG_BUGi386时才能用,某些i387协处理器芯片使用32位的保护模式时会有BUG,比如一些浮点运算,使用这个参数可以让内核忽略387协处理器。
-
- 5、no-hlt
- 该选项仅当定义了CONFIG_BUGi386时才能用,一些早期的i486DX-100芯片在处理“hlt”指令时会有问题,执行该指令后不能可靠的返回操作系统,使用该选项,可以让linux系统在CPU空闲的时候不要挂起CPU。
-
- 6、root=...
- 该参数告诉内核启动时使用哪个设备作为根文件系统。比如可以指定根文件为hda8:root=/dev/hda8。
-
- 7、ro和rw
- ro参数告诉内核以只读方式加载根文件系统,以便进行文件系统完整性检查,比如运行fsck;rw参数告诉内核以读写方式加载根文件系统,这是默认值。
-
- 8、reserve=...
-
保留端口号。格式:reserve=iobase,extent[,iobase,extent]...,用来保护一定区域的I/O端口不被设备驱动程
序自动探测。在某些机器上,自动探测会失败,或者设备探测错误或者不想让内核初始化设备时会用到该参数;比
如: reserve=0x300,32 device=0x300,除device=0x300外所有设备驱动不探测 0x300-0x31f范围的
I/O端口。
-
- 9、mem=...
-
限制内核使用的内存数量。早期BIOS设计为只能识别64M以下的内存,如果你的内存数量大于64M,你可以指明,如果你指明的数量超过了实际安装的内
存数量,系统崩溃是迟早的事情。如:mem=0x1000000意味着有16M内存,如果是mem=0x6000000,就是96M内存了。
- 注意:很多机型把部分内存作为BIOS的映射,所以你在指定内存大小的时候一定要预留空间。你也可以在 pentium或者更新的CPU上使用mem=nopentium关闭4M的页表,这要在内核配置时申明。
-
- 10、panic=N
- 默认情况,内核崩溃--kernel panic 后会宕机而不会重启,你可以设置宕机多少秒之后重启机器;也可以在/proc/sys/kernel/panic文件里设置。
-
- 11、reboot=[warm cold][,[bios hard]]
- 该选项仅当定义了CONFIG_BUGi386时才能用。2.0.22的内核重启默认为cool reboot,warm reboot 更快,使用"reboot=bios"可以继承bios的设置。
-
- 12、nosmp 和 maxcpus=N
- 仅当定义了 __SMP__,该选项才可用。可以用来禁用多CPU或者指明最多支持的CPU个数。
- 内核开发和调试的启动时参数
- 这些参数主要用在内核的开发和调试上,如果你不进行类似的工作,你可以简单的跳过本小节。
-
- 1、debug
- linux的日志级别比较多(详细信息可以参看linux/kernel.h),一般地,日志的守护进程klogd只把比DEBUG级别高的日志写进磁盘;如果使用该选项,klogd也把内核的DEBUG信息写进日志。
-
- 2、profile=N
-
在做内核开发的时候,如果想清楚的知道内核在什么地方耗用了多少CPU的时钟周期,可以使用核心的分析函数设置变量prof_shift为非0值,有两
种方式可以实现:一种是在编译时指定,另一种就是通过“profile=”来指定; 他给出了一个相当于最小单位--即时钟周期;系统在执行内核代码的时
候, profile[address >;>; prof_shift]的值就会累加,你也可以从 /proc/profile得到关于它
的一些信息。
-
- 3、swap=N1,N2,N3,N4,N5,N6,N7,N8
-
设置内核交换算法的八个参
数:max_page_age, page_advance, page_decline,page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight,bufferout_weight。
-
- 4、buff=N1,N2,N3,N4,N5,N6
- 设置内核缓冲内存管理的六个参数:max_buff_age, buff_advance, buff_decline,buff_initial_age, bufferout_weight, buffermem_grace。
-
- 使用 RAMDISK的参数
-
(仅当内核配置并编译了 CONFIG_BLK_DEV_RAM)。一般的来说,使用ramdisk并不是一件好事,系统自己会更加有效的使用可用的内
存;但是,在启动或者制作启动盘时,使用ramdisk可以很方便的装载软盘等设备上的映象(尤其是安装程序、启动过程中),因为在正真使用物理磁盘之
前,必须要加载一些必要的模块,比如文件系统模块,scsi驱动等(可以参见我的initrd-x.x.x.img文件分析-制作安装程序不支持的根文件
系统)。
- 早期的ramdisk(比如1.3.48的核心)是静态分配的,必须以ramdisk=N来指定ramdisk的大小;现在ramdisk可以动态增加。一共有四个参数,两个布尔型,两个整形。
- 1、load_ramdisk=N
- 如果N=1,就加载ramdisk;如果N=0,就不加载ramdisk;默认值为0。
-
- 2、prompt_ramdisk=N
- N=1,提示插入软盘;N=0,不提示插入软盘;默认为1。
-
- 3、ramdisk_size=N或者ramdisk=N
- 设定ramdisk的最大值为N KB,默认为4096KB。
-
- 4、ramdisk_start=N
- 设置ramdisk的开始块号为N,当ramdisk有内核的映象文件是需要这个参数。
-
- 5、noinitrd
-
(仅当内核配置了选项 CONFIG_BLK_DEV_RAM和CONFIG_BLK_DEV_INITRD)现在的内核都可以支持initrd了,引
导进程首先装载内核和一个初始化的ramdisk,然后内核将initrd转换成普通的ramdisk,也就是读写模式的根文件系统设备。然后
linuxrc执行,然后装载真正的根文件系统,之后ramdisk被卸载,最后执行启动序列,比如/sbin/init。
- 选项noinitrd告诉内核不执行上面的步骤,即使内核编译了initrd,而是把initrd的数据写到 /dev/initrd,只是这是一个一次性的设备
TAG:
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
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 |
我的存档
数据统计
- 访问量: 78238
- 日志数: 94
- 建立时间: 2008-08-29
- 更新时间: 2012-09-10