精华内容
下载资源
问答
  • grub2 命令进入系统

    千次阅读 2018-09-06 13:50:12
    grub命令环境下   ls 命令查看磁盘分区 cat (h 按tab键,利用命令补全提示查看系统磁盘 cat (hx 按tab键,利用命令补全提示查看磁盘分区   insmod ndfs 加载ntfs格式文件系统,需要加载其他文件系统,...

     

     

     

    在grub的命令环境下

     

    ls 命令查看磁盘分区

    cat (h 按tab键,利用命令补全提示查看系统磁盘

    cat (hx 按tab键,利用命令补全提示查看磁盘分区

     

    insmod ndfs 加载ntfs格式文件系统,需要加载其他文件系统,根据实际情况来更改

     

    set root=(hd1,gpt5) 设置根目录,括号里边的磁盘分区根据实际情况来填写

     

    chainloader +1 引导系统bios启动windows,如果不成功就把+1替换成路径

    chainloader /efi/Microsoft/Boot/Bootmgfw.efi 或者 chainloader /EFI/boot/bootx64.efi

     

    boot 启动系统

     

     

     

    grub启动linux 的我还没有尝试成功过

     

    现在的修复思路就是,在grub哪里随便进入一个系统,本人的电脑是两个系统的,一个win10,一个kali(现在kali还是无法进入)

    目前我只是进入了window10的系统,到了这一步,我们可以直接用window的引动修复工具EasyBCD来修复这两个系统的引导(会覆盖grub的引导,如果开机时候还想是grub的引导,可以在EasyBCD修复好引导后,在linux的系统里边重新安装一下grub,并按照自己的要求来配置)

     

    如果只进入了linux的系统,那就直接修改/boot/grub/grub.cfg文件来设置window系统的引导,grub.cfg文件不会的可以百度一个回来对着改就行

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 详解GRUB 2命令

    千次阅读 2012-05-27 18:51:12
    这里以ubuntu 12.04中的GRUB 2为例(GRUB 1.9x称为GRUB 2)来讲述一下GRUB命令。 打开终端,运行sudo gedit /boot/grub/grub.cfg,打开这个文件。上面的一行行文字令人眼花缭乱,现在只用一些重要的。 在...

    这里以ubuntu 12.04中的GRUB 2为例(GRUB 1.9x称为GRUB 2)来讲述一下GRUB的命令。

    打开终端,运行sudo gedit /boot/grub/grub.cfg,打开这个文件。上面的一行行文字令人眼花缭乱,现在只用一些重要的。

    在第59行有一段文字:set timeout=-1,把timeout这个值设成了负数。timeout是指GRUB显示的时间,如果是负数,则一直在那里等着,如果是0,则直接跳过GRUB。为了使GRUB显示出来,需要把61行也改为set timeout=-1

    101行到113行是一连串的命令,下面分组进行讲解。

    4.3.1 描述命令(48

    101行,有一个命令叫menuentry,它的用法如下:

    menuentry '***'{命令}

    其中***是指在GRUB界面上菜单项的名称,比如第一项显示的是Ubuntu,Linux 3.2.0-23-generic-pae。在上面指明了内核版本是3.2.0。相当于GRUB 1title,只不过没有了{}

    倘若继续往下看,121行,有一个命令是echo '***',这也是一种描述,在启动时显示相应的信息。

    4.3.2 加载命令(48

    104-106行,有三个连续出现的insmod命令,这就是加载相应的模块。比如105行,加载了part_msdos模块,这个模块是专门管MSDOS分区的,比如FAT32/NTFS分区。

    111行,有一个很重要的命令,这就是linux,相当于GRUB 1kernel。这是一个加载内核的命令,后面有一个参数:/boot/vmlinuz-3.2.0-23-generic-pae,这就是内核文件。内核文件是一个压缩文件,运行Linux命令是会自动解压。

    4.3.3 虚拟文件系统命令(48

    3.4节里提过,要创建一个虚拟的根文件系统。那么这个命令就是initrd,后面也有一个参数:/boot/initrd.img-3.2.0-23-generic-pae,这个文件也是压缩文件,所以解压,解压后就被挂载到/,虚拟成功。

    4.3.4 启动相关(4850

    106/107行,有两个命令,作用完全一样。第一个是set root(相当于GRUBroot),第二个是search,两个命令都是指定启动分区的。用法有差别,set root后面跟着的是分区,而search则需要一大堆的参数,下面一一解读这些参数:

    --no-floppy:是指不读取软驱

    --fs-uuid:表示分区用UUID表示。

    --set=root:表示分区将设置为启动分区。

    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:是该分区的UUID

    好了现在说GRUB分区如何表示。

    Linux里,分区表示方法为:/dev/h(s)d[a-z]x,其中h(s)代表硬盘类型,h代表IDE硬盘,s代表SATASCSI硬盘。a-z表示是第几块硬盘,x为分区的号码:

    主分区(扩展分区):1-4

    逻辑分区:5-16

    GRUB里则不一样,他的表示方法为:(h(s)dm,n),可以看出,前半部分是一样的,均为h(s)d,后面不一样,m代表是第几块硬盘(从0开始),n表示的是Linux里的那个x,不过版本不一样又略有不同。GRUB1使用的是x0开始,而GRUB2则是从1开始,比如如果是/dev/hda3,那么在GRUB1里就是(hd0,2),在GRUB2里则是(hd0,3)

    如果把/dev/hda1作为启动分区,则应该是set root='(hd0,1)'不过近期来,在n的前面加上了msdos,即set root='(hd0,msdos1)',这一点是无版本区别的。

    再看UUIDUUID是分区的一个标识符。

    那么执行了这么多命令,最后干什么呢?最后有一个命令:boot,就表示启动了。

    如果有Windows操作系统并存,则会在113行看到chainloader +1,这表示GRUB将把启动所有权交给Windows

    展开全文
  • GRUB2命令和环境变量列表

    万次阅读 2015-05-10 16:35:18
    摘取自GRUB2中文手册 环境变量biosnum当链式加载时,GRUB 需要知道根设备的 BIOS 驱动器号。如果 BISONUM 变量正确设置,GRUB 就 不需要猜测驱动器号了。它会改变 BIOS 驱动器在链式加载系统中的映射关系。 chosen...

    摘取自GRUB2中文手册

    环境变量

    biosnum

    当链式加载时,GRUB 需要知道根设备的 BIOS 驱动器号。如果 BISONUM 变量正确设置,GRUB 就
    不需要猜测驱动器号了。它会改变 BIOS 驱动器在链式加载系统中的映射关系。

    chosen

    当执行菜单项时,GRUB 自动设置 CHOSEN 变量为当前菜单项标题。如果当前在单项是某个菜单的子
    菜单,那么 CHOSEN 会包含它的父菜单标题,各个父菜单之间使用 > 分割 。例如 :
    “other>fedora>fedora_16” ,表示当前菜单标题是 fedora_16,它的 级菜单是 fedora,更 级菜单是
    other。依此类推。

    color_highlight

    这个选项包含了终端的高亮显示的前景色和背景色的设定,她们之间使用斜线 / 分割。改变这个选项可
    以改变默认的基本色彩。默认值是:”black/white”

    color_normal

    这个变量包含了普通显示时的前景和背景色。由斜线分割。默认是:”white/black”

    色彩必须是以下之一:
    black blue green cyan red magenta brown yellow white
    light-gray drak-gray
    light-blue light-green light-cyan light-red light-magenta

    debug

    开启这个变量可以从 GRUB 的各个组件会输出调试信息。变量的值是调试选项,它们之间使用空格或者
    逗号分割。使用 all 表示开启所有调试选项。

    default

    变量值可以设置为某个菜单项的标题或者索引。如果设置了这个选项,那么它所指定的菜单项默认被选中。并且作为自动加载菜单项。

    如果某个菜单项含有子菜单那么它必须使用 > 分割各个 级菜单:

    Submenu 1
    Menu Entry 1
    Menu Entry 2
    Submenu 2
    Submenu 3
    Menu Entry 3
    Menu Entry 4
    Menu Entry 5
    如果你想选中 Menu Entry 3 那么应该使用:

    set default=”Submenu 2>Submenu 3>Menu Entry 3 ”
    这个变量通常使用 GRUB_DEFAULT 变量间接设置。

    fallback

    类似于 default ,这个选项用来指定一个菜单项。当 default 菜单项加载失败的时候,会加载 fallback 的
    菜单项。值的格式同 default 选项。

    gfxmode

    它设置 gfxterm 图形终端的分辨率。你只能在你的显卡通过 VESA BIOS Extensions 支持图形终端的时
    候才能使用它。例如:LCD 面板的分辨率可能不能使用这个变量控制。默认值是”auto”。

    变量值可以通过逗号或者分号指定多个。GRUB 会依次尝试这些分辨率。分别率的格式应该是:

    WIDTHxHIEGHT 或者 WIDTHxHEIGHTxDEPTH

    gfxpayload

    这个变量设置后控制 linux 内核启动后的显示方式。它用来替换 vga= 内核参数。可以设置为:”text” 强
    制 linux 以文本模式启动, “keep” 使用 gfxmode 变量的设置。或者所有被 gfxmode 接受的值。

    根据你的内核、发行版、显卡和一些不确定因素,使用这个选项可能导致 GNU/linux 发生显示问题。此
    时应该设置为 “text” 。
    这个选项的默认值因平台而异。在 PC BIOS默认值为 “text” ,其他情况可能是 “auto” 或者是某个有 效的图形模式。
    这个选项通常使用 GRUB_GFXPAYLOAD_LINUX 变量设置。

    gfxterm_font

    设置 gfxterm 图形终端的默认字体。

    icondir

    这个选项设置 GRUB 搜索图标使用的路径。

    lang

    这个选项设置 gettext 命令使用的语言编码,它用来翻译字符串 。 通常法语应该设为 “fr” ,简体中文设
    为 “zh_CN” 。

    grub2-mkconfig 程序会根据当前 OS 的语言设置自动设置这个变量。

    locale_dir

    这个变量设置翻译文件所在路径 。通常是 /boot/grub2/locale 。如果没有设置此变量,那么国际化选项
    是关闭的。

    这个变量包含被选中的菜单项文本的前景色和背景色。使用 / 分割前景色和背景色,默认值等于
    color_highlight 变量。

    这个变量设置未选中菜单项的前景色和背景色。使用 / 分割前景和背景。默认值等于 color_normal 变量。

    pager

    如果设置为 1 那么每当输出充满屏幕时自动暂停,按下任意键后继续查看下一页。默认是不暂停。

    prefix

    设置 grub 模块和配置文件的路径。通常是 “$root/boot/grub2” 。它通常由 grub2-install 在安装 grub 时
    就写在内嵌的配置文件内。grub2-mkrescue 创建的可引导光盘也已经自动设置 root 和 prefix,用户配
    置文件内无需设置 prefix 的值。GRUB 模块会根据 prefix 加载,所以它必须正确设置。否则就会提示
    error: file not found 。

    root

    设置 GRUB 根设备。任何路径中没有指定设备的,都会使用根设备作为默认分区。这个变量应该在
    GRUB 启动时由配置文件决定。

    例如,如果 GRUB 安装到第一块硬盘的第一个分区,那么 root 应该设为 (hd0,1) ;prefix 应该为
    “$root/boot/grub”

    superusers

    这个变量设置一个超级用户列表。参考:权限管理 50

    theme

    这个变量为包含 GRUB 图形菜单主题的路径。

    通常使用变量:GRUB_THEME 设置。

    timeout

    它指定自动加载倒计时时限,单位为秒。GRUB 成功加载菜单配置文件后就立刻开始倒计时,如果在这
    段时间内没有任何键盘操作那么加载默认菜单项。如果 unset 这个变量或者设为 -1 那么不自动加载默认
    菜单项。

    这个变量通常使用 GRUB_TIMEOUT 或者 GRUB_HIDDEN_TIMEOUT 变量设置。

    GRUB环境区块

    这个功能用来在一次引导时记录下一些信息,下一次启动 GRUB 可以读取这些信息。假设你希望默认菜
    单项为最后一次使用的那个。你就需要使用这个。由于空间限制,为了节省代码量同时也是为了防止文
    件系统崩溃,GRUB 不能写入文件。因此 GRUB 不能创建或者修改自己的配置文件。因此 GRUB 提供
    了环境区块的功能,它用来记录 GRUB 当前的状态,便于日后加载。

    环境区块是一个 1024byte 的文件,它通常命名为 /boot/grub2/grubenv 。在 GRUB 中可以使用 load_
    env 命令加载它,使用 save_env 写入当前 GRUB 环境变量到区块中。在 OS 中,可以使用 grub2-
    editenv 程序编辑区块文件。

    由于安全问题,这个功能只能应用在普通磁盘(非 LVM 和 RAID ),不使用文件系统校检 (非 ZFS
    ) ,使用 BIOS 或者 EFI( 非 ATA, USB 或者 IEEE1275 ) 的平台 。

    GRUB_SAVEDEFAULT 变量就是使用环境区块完成自己的功能。

    命令列表

    这一章里我们列举所有 GRUB 中的命令。命令被分割到不同的組。有一些只能被永在配置文件和菜单的
    全局区域。大部分命令可以出现在任意位置,既可以使用 GRUB 命令行执行,也可以通过配置文件运行。

    在救援模式下只有 insmod 、ls、set 和 unset 命令可用。如果你不知道在救援模式下应该干些什么。参
    考《GRUB 救援 shell 》

    只用于菜单的命令

    配置文件的语法遵守以下规则:

    • 文件必须是纯文本
    • #开始的行作为注释行
    • 选项之间使用空格隔开
    • 所有的数字都可以是十进制或者是 16 进制(前缀 0x 或者
      0X)。

    语法:

    menuentry TITLE [`--class=class' ...] [`--users=users'] [`--hotkey=key'] 
    { COMMAND; ... } 

    以 TITLE 为名字建立菜单项。当进入这个菜单项后 GRUB 会设定 CHOSEN 变量的值为 TITE,然后
    执行花括号内的命令 。最后一条命令成功执行后,如果 OS 内核已经被加载,那么自动执行 boot 命令。

    --class 选项可以使用任意次,它把此菜单项归类到某个菜单类别里。菜单类别决定了菜单使用的样式盒。 
    
    --users 选项,设置某个特殊的用户才能访问这个菜单。--users=user1 --users=user2 指定两个用户能访 
    问此菜单。参考:权限管理 50 
    
    --hotkey 选项,为菜单项设置一个快捷键,KEY 可以是 某个单个字母,或者是 "tab" "backspace" " 
    delete " 之一。 

    实例:

    menuentry 'Windows XP' { 
    insmod fat 
    search -f /ntldr --set=root 
    chainloader +1 
    sendkey enter
    } 

    语法:

    submenu TITLE [`--class=class' ...] [`--users=users'] [`--hotkey=key'] 
    { MENU ENTRIES ... } 

    定义子菜单,添加一个名为 TITLE 的菜单项,但是这个菜单项包含下级菜单。当进入此菜单时,会显示
    花括号内定义的菜单。

    --class 选项可以使用任意次,它把此菜单项归类到某个菜单类别里。菜单类别决定了菜单使用的样式盒。 
    
    --users 选项,设置某个特殊的用户才能访问这个菜单。参考:权限管理 50 
    
    --hotkey 选项,为菜单项设置一个快捷键,KEY 可以是 某个单个字母,或者是 "tab" "backspace" " 
    delete " 之一。 

    实例:

    menuentry 'Fedora' { 
        echo 'Fedora' 
    } 
    menuentry 'Redhat' { 
        echo 'Redhat' 
    } 
    menuentry 'BSD' { 
        echo 'Free BSD' 
    } 
    submenu 'Other OS' { 
        menuentry 'Windows 7' { 
        echo 'Windows 7' 
        } 
        menuentry 'Windows XP' { 
        echo 'Windows XP' 
        }
    }

    通用命令

    这些命令可以出现在任意位置,既可以使用 GRUB 命令行执行,也可以通过配置文件运行。

    serial

    语法:

    serial [`--unit=unit'] [`--port=port'] [`--speed=speed'] 
    [`--word=word'] [`--parity=parity'] [`--stop=stop'] 

    初始化串口设备。UNIT 是一个介于 0-3 的整数,它指定了串口端口。默认值为 0,它代表了 COM1 端
    口。PORT 是搜索 UART1的 I/O 端口。 SPEED 是传输速率,默认为 9600 。WORD 和 STOP 是数据
    的 bit 数和结束位 。数据 bit 数必须是 5 到 8,结束位必须是 1 或 2 。默认值是 8 数据位,1 结束位。
    PARITY 可用值为:”no” “odd” “even” ,默认值为 “no”

    如果不使用 terminal_out 和 terminal_input 指定 serial 为目标设备,串行端口并不用作信息传输。

    terminal_input

    语法:

    terminal_input [`--append'|`--remove'] [terminal1] [terminal2] 
    显示/设置输入终端。当不使用参数的时候显示当前激活的可用的输入终端。 
    --append  添加指定终端到激活的输入终端列表中。列表中的任意终端都可以给 GRUB 提供输入。 
    --remove ,从输入终端列表中删除指定终端。 

    因为计算机内部采用并行数据,不能直接把数据发到 Modem,必须经过 UART 整理才能进行异步传输,
    其过程为:CPU 先把准备写入串行设备的数据放到 UART 的寄存器(临时内存块)中,再通过
    FIFO(First Input First Output,先入先出队列)
    传送到串行设备,若是没有 FIFO,信息将变得杂乱无章, 不可能传送到 Modem。
    如果没有使用 –append 和 –remove 但是提供了终端,那么只显示指定终端。

    terminfo

    terminfo [-a|-u|-v] [term] 

    通过提供 terminfo 数据库中的项目名设置终端类型,它的值应该类似于 Unix 中 TERM 环境变量的值,

    当前可用的终端类型: vt100、 vt100-color、 ieee1275、 dumb 。如果你需要其他的终端类型,请联
    系我们,和我们讨论添加新的终端类型。

    选项:-a’ (--ascii'),-u’ (--utf8'), and-v’ (`–visual-utf8’) ,控制非 ASCII 字符如何显示,-a 用于只
    支持 ASCII 的终端,-u 指定 logically-ordered UTF-8 ,-v visually-ordered UTF-8 。(換句话说在不
    支持双向文本的终端 会以合适顺序从左向右显示文本;这对 UTF-8 可能不是很合适,只是一个应急方案).

    用于菜单或命令行的命令

    这些命令可以用于菜单或命令行。如果你忘记了某个命令可以输入 help 得到帮助。

    acpi

    acpi [`-1'|`-2'] 
    [`--exclude=table1,...'|`--load-only=table1,...'] 
    [`--oemid=id'] [`--oemtable=table'] [`--oemtablerev=rev'] 
    [`--oemtablecreator=creator'] [`--oemtablecreatorrev=rev'] 
    [`--no-ebda'] filename ... 

    现代 BIOS 系统通常都包含高级电源管理(ACPI),并且定义了大量表格用来描述 ACPI 兼容的 OS。
    在这某些情况下,默认的 table 不适和你的 OS 。你需要使用这个命令去替换默认的表格。

    通常这个命令会在 BIOS 的扩展数据段中修改 RSDP(root system description pointer)。使用了–no-
    ebda 选项新的表只被 GRUB 知晓,这可以用于 GRUB 的 EFI 仿真。

    badram

    badram addr,mask[,addr,mask...] 

    这个命令使用内存管理器筛选掉指定内存区域的错误内存(通常这意味着损坏)。它在 OS 内核正式启动
    之前都有效。启动后的内核会从 GRUB 中得到内存映射。通常 Linux GnuMach FreeBSD 和其他多起
    动 OS 都支持这个特性。

    此命令的语法格式与 memtest86+ 工具相同。需要提供基地址和掩码。Given a page-aligned address
    and a base address / mask pair, if all the bits of the page-aligned address that are enabled by the
    mask match with the base address, it means this page is to be filtered.

    blocklist

    blocklist file 

    显示 file 的区块列表。

    boot

    已经加载内核或者已经执行了 chainloader 命令后,执行 boot 会开始引导。通常 boot 会在菜单内的命令
    结束后自动执行。

    background_image

    background_image IMAGE 

    载入指定的图片作为背景. 使用这个命令需要载入 gfxterm 模块,并且输出终端要设置为 gfxterm

    insmod png 
    insmod jpeg 
    insmod vbe 
    insmod vga 
    insmod gfxterm 
    loadfont /boot/wqy.pf2 
    #载入字体用来显示中文。参见   字体:17 
    set gfxmode=1024x768 
    terminal_output gfxterm 
    #应该在执行 terminal 命令之前设置 gfxterm 相关的变量。 
    menuentry "xfpm-general-settings.png"  { 
        background_image (cd)/boot/theme/xfpm-general-settings.png 
    } 
    menuentry "grub-splash.png"  { 
        background_image (cd)/boot/theme/grub-splash.png 
    }

    cat

    cat [--dos] file 

    显示 FILE 的内容。实例:

    grub> cat /etc/fstab 

    如果设置了–dos 选项那么按照 dos 格式,把 \r\n 解释为一个换行。否则\r 会被显示为一个特殊字符,\n 会被当作换行。

    chainloader

    chainloader [--force] file 

    链式加载指定文件。通常 file 使用区块列表指定,例如:

    chainloader  (hd0,msdos1)+1 

    如果指定了–force 那么强行加载,而不去检查文件是否有正确的标记。这个通常用于加载其他有缺陷的
    加载器,例如 SCO UnixWare 7.1。

    cmp

    cpm file1 file2 

    比较文件 file1 和 file2 。如果二者大小不同那么显示:

    Differ in size: 0x1234 [foo], 0x4321 [bar] 

    如果二者大小相同但是某些字节不同,那么会显示那个字节的地址:

    Differ at the offset 777: 0xbe [foo], 0xef [bar] 

    如果两个文件完全相同那么不显示任何东西。

    configfile

    configfile file 

    加载一个配置文件。如果 FILE 内包含了菜单定义,那么在加载完毕后立刻进入菜单显示模式。

    cpuid

    cpuid [-l] 

    检查 CPU 特性,这个命令只用于 x86 cpu。当使用了 -l 选项 如果 CPU 支持 long 模式 (64bit),那么返
    回 true。

    如果没有包含-l 选项,此命令的行为类似与 -l 选项。会在随后的 GRUB 版本中升级它。

    crc

    crc FILE 

    显示文件 FILE 的 CRC32 校检和。

    date

    date [[year-]month-day] [hour:minute[:second]] 

    如果没有任何参数那么显示当前的日期和时间。

    其他情况下会修改当前时间或者日期。但是只改动指定参数,其他的保持不变。例如:

    date 01-01 

    会改变月和日,但是年和 时分秒 都保持不变。

    drivemap

    drivemap `-l'|`-r'|[`-s'] from_drive to_drive 

    没有使用任何选项那么映射 from_drive 到 to_drive 。某些 OS 不能从非第一块硬盘 引导,此时你需
    要这个命令去把第二块硬盘映射成第一块。命令会忽略路径中的非设备的部分。因此你可以放心的使用

    $root 或者 $prefix 
    
    -s 选项,交换映射。把 from_drive 映射成 to_drive 同时把 to_drive 映射成 from_drive ,也就是两个 
    设备调换。 
    
    -l 选项,显示当前的映射。 
    
    -r 选项,重置所有的映射到默认状态。 

    实例:

    drivemap -s (hd0) (hd1) 

    他会调换第一块和第二块硬盘。

    echo

    echo [-n] [-e] string ... 

    显示指定的文本,并且在行尾添加换行。如果使用了-n 不添加换行。如果有多个 word 传入那么各个字
    符串之间使用空格分割(类似于 shell 中的命令参数分割)。当然双引号字符串可以使用变量扩展。

    echo "root=$root" 

    显示当前的根设备

    -e 选项,解析字符串中的转义序列。 
    
    `\\'   反斜线 
    `\a'  警告音 
    `\c'  静止添加换行 
    `\f'   进纸符 
    `\n'  换行符 
    `\r'   回车符 
    `\t'   横向制表符 
    `\v'  竖直制表符 

    export

    export envvar 

    导出变量 ENVVAR,被导出的变量会自动在 configfile 命令加载的子脚本中定义。

    false

    false 

    这个命令不做任何事情,只是退出状态非 0 。 它可以在流程控制语句中使用。

    gettext

    gettext string 

    翻译 string 到当前语言。

    当前语言编码在 GRUB lang 环境变量。翻译文件从 locale_dir 指定的目录中搜索 MO 文件。

    gptsync

    gptsync device [partition[+/-[type]]] ... 

    使用 GUID 分区表的磁盘也支持传统的 MBR 分区表称作 legacy MBR。legacy MBR 只是 GPT 的一个
    子集。

    这个命令在指定设备的指定分区 添加一个 legacy MBR。TYPE 是 MBR 分区的类型代码。可以是 10
    进制也可以是 16 进制(前缀 0x)。在 PARTITION 和 TYPE 之间如果是+号代表此分区激活,- 代表此分
    区非激活。只有一个分区可以处在激活状态。如果 + - 和 TYPE 都省略了,那么此分区设置为非激活。

    halt

    halt `--no-apm' 

    这个命令关闭计算机,然后关闭电源。如果使用了 –no-apm 那么关闭计算机后不使用 BISO 的 APM
    关闭电源。

    help

    help [pattern] 

    显示关于匹配指定模式的命令名的详细帮助文件。如果省略 pattern 你会看到所有的命令简短的列表。

    initrd

    initrd FILE 

    为已经加载的 linux 内核,加载 initrd,并且设置 linux 内核内存中的参数。这个选项必须在 linux 命令
    之后使用。

    initrd16

    inttrd16 FILE 

    在 16bit 模式下加载 initrd,这个命令必须在 linux16 命令后面使用。

    insmod

    insmod MODULE 

    动态加载名为 MODULE 的 GRUB 模块。不要跟后缀:

    insmod fat       #正确 
    insmod fat.mod   #错误 

    keystatus

    keystatus  [--shift] [--ctrl]  [--alt] 

    如果 Shift 或者 alt 或者 ctrl 按键处在按下状态,那么退出状态为 0,否则为 1。这个功能对在脚本中使用
    特殊控制键很有用。

    这个功能只在某些平台 支持。如果 keystatus 不使用任何选项,在支持 keystatus 的平台 退出状态为
    0 否则为 1 。

    linux

    linux FILE .. ... 

    以 32bit 模式加载 linux 内核 FILE。命令行中剩下的参数都会被作为内核参数传递给内核。注意,每次
    使用 linux 命令后,都必须重新加载 initrd。

    在 x86 系统 ,内核必须使用 32bit 引导协议。这意味着 vga= 选项无效。如果你希望设置显示模式,你
    需要使用 set gfxpayload=1024x768 或者 set gfxpayload=”keep” 。通常 GRUB 发现 vga 命令行参数
    时会自动设置 gfxpayload 。linux16 命令可以没有这个限制。

    linux16

    16bit 模式下加载 linux 内核。命令行中剩下的参数都会被作为内核参数传递给内核。注意,每次使用
    linux16 命令后,都必须重新使用 initrd16 命令。

    内核会使用传统的 16bit 引导协议。它不会导致 vga 内核参数无效。也可以用来加载其他的类 linux 内核
    的镜像程序。

    这个命令只用于 x86 平台。

    list_env

    list_env  [-f  FILE] 

    显示环境区块文件中的变量。如果使用了 -f FILE ,那么显示指定区块文件中的变量。

    load_env

    load_env  [-f  FILE] 

    从环境区块文件中载入变量,如果使用了 -f FILE ,那么载入指定区块文件中的变量。

    loopback

    loopback  [-d]  DEVICE  FILE 

    把镜像文件 FILE 挂载到设备名 DEVICE 。以实现对镜像文件内容的访问。
    实例:

    loopback loop0  /WinPE.iso 
    ls (loop0)/ 

    这个命令也可以在 iso 文件中读取文件。

    实例,硬盘安装 Fedora-16-i386-DVD.iso:
    假设文件放置在 winxp 下 F 盘根目录,设备号为 (hd0,msdos7):

    loopback fedora /Fedora-16-i386-DVD.iso 
    set root='(fedora)' 
    linux /isolinux/vmlinuz 
    initrd /isolinux/initrd.img 
    boot 

    但是 loopback 和磁盘仿真暂时不是一个东西。所以你不能 chainloader (loop0)+1

    若需要引导 img 或者 iso ,你需要使用 memdisk,参见 前言->准备 memdisk 1

    ls

    ls   [arg ...] 

    类似与 linux ls 命令,显示设备或者文件。

    无参数时显示所有 GRUB 已知的设备。
    如果参数是一个设备名那么显示指定设备的属性,如果是个绝对目录那么显示目录内容:

    loopback fd0 /Ghost82.img 
    ls  (fd0) 
    ls  (fd0)/ 

    normal

    normal  [FILE] 

    进入 normal 模式,并且加载配置文件,然后显示 GRUB 菜单。

    如果指定了配置文件 FILE 那么加载指定配置文件,否则加载 $prefix/grub.cfg 配置文件。

    在 normal 模式,命令、文件系统模块 和加密模块都已经自动加载,并且拥有完整的语法解析器。其他
    的模块可以在配置文件中使用 insmod 命令加载。

    normal 命令可以嵌套执行。即在 normal 模式下依然可以调用 normal 。它类似于 configfile 命令。

    normal_exit

    normal_exit 

    退出当前的 normal 模式。如果当前是最后一个 normal 模式,那么退回到命令行救援模式。

    parttool

    parttool PART  COMMANDS 

    对分区表进行操作。

    COMMAND 以如下格式出现

    CMD=VALUE :设置某个属性值 或者 
        CMD+  CMD- :表示开启或关闭某个分区属性,+-和 CMD 之间不能有空格。 
    
    目前 parttool 命令对使用 DOS 分区表,MBR 分区表的用户有用。 
    
    boot :当开启它激活选中分区(被激活的分区是可引导的),并且取消所有其他分区的激活状态。只能够对主分区 这么做。 
        parttool (hd0,1) boot+ 
        parttool (hd0,1) boot- 
    
    type :改变分区类型,分区类型由一个介于 0x00 ~ 0xFF 的数指定:type=0x80 
    hidden 
    
    当开启这个选项,设置指定分区在分区表中的隐藏位。当关闭这个选项开启隐藏位。这对于 DOS Windos 
    系统和多个 Fat 格式的主分区同时存在的时候有意义。 

    password

    password USER clear-password 

    定义一个用户 USER,并且用明文指定他的密码。

    password father  hello 
    password mother boy 

    这个命令添加了两个用户,并且分别指定它的密码为 hello 和 boy。参考:权限管理 50

    password_pbkdf2

    password_pbkdf2  USER  hashed-PASSWORD 

    定义一个用户 USER,并且用散列后的密文指定他的密码。调用 grub2-mkpasswd-pbkdf2 计算密文的
    散列。参考:权限管理 50

    play

    play file | tempo [pitch1 duration1] [pitch2 duration2] ... 

    tempo 是所有 duration 的单位,设置为 60 代表基于 1 秒,120 代表基于半秒。 pitch 代表声音的频率,
    设置为 0 表示声音衰减。duration 代表声音持续的时间。

    实例:

    play 60  100 2 200 3 300 1 

    以命令播放 100Hz 的声音持续 2 秒,200Hz 持续 3 秒 ,300Hz 持续 1 秒。

    play 120  100 2 200 3 300 1 

    以命令播放 100Hz 的声音持续 1 秒,200Hz 持续 1.5 秒 ,300Hz 持续 0.5 秒。
    如果参数是一个文件名,那么播放指定文件内的音频数据。文件是二进制格式,第一个 32bit 被作为无符
    号 32bit 小端序数字读取它作为 tempo 使用。然后随后每个 32bit 被当作两个 16bit 无符号小端序数字,
    分别作为 pitch 和 duration 使用。

    pxe_unload

    pxe_unload 

    卸载 PXE 环境,此命令只在 PC BIOS 平台有效。

    read

    read  [var] 

    等待用户输入,按下 enter 后,输入的行不包括换行符被保存到名为 var 的变量中。

    reboot

    重启电脑。

    save_env

    save_env  [-f  file]  var ... 

    把指定的变量保存到区块文件中,如果指定了 -f file 那么保存到 file 文件中(file 必须是环境区块文件)。

    search [--file  FILE ]  [--label  LABEL]  [--fs-uuid  UUID ]  [--set  [var] ] [--no-floppy] 
    
    --file FILE 选项,那么在所有设备里搜索文件 FILE 。 
    --label LABEL 选项,搜索卷标为 LABEL 的设备。 
    --fs-uuid UUID 选项,查询指定 UUID 的设备。 

    如果指定–set var,那么在搜索成功后设置 var (var 可以是任意变量名)的值为目标设备名。

    实例:

    加载 Win Xp 的命令: 
    insmod ntfs 
    insmod fat 
    search  --file /ntldr --set root 
    chainloader +1 
    boot

    里面的 search 命令 搜索 /ntldr 文件,并且把找到的第一个包含这个文件的设备设为根设备。

    search.file search.fs_label 和 search.fs_uuid 是 search –file ,search –label ,search –fs-uuid 的简写。

    sendkey

    sendkey [--num|--caps|--scroll|--insert| 
    --pause|--left-shift|--right-shift| 
    --sysrq|--numkey|--capskey|--scrollkey| 
    --insertkey|--left-alt|--right-alt| 
    --left-ctrl|--right-ctrl on|off]... [no-led] 
    keystroke 

    发送指定的按键序列到键盘缓冲区。某些 OS 或者加载器需要特殊的键盘操作,例如 进入安全模式 。使
    用 sendkey 可以由 GRUB 发送按键给被引导的文件,可以避免用户操作。

    你最多可以提供 16 个按键,因为 BIOS 的键盘缓冲就这么大。按键名可以是大写或者小写单个字母, 单个数字。

    具体列表不在这里提供了

    sendkey 命令支持多种选项,它们影响 BIOS 的键盘状态字节。接受 on 或 off 参数,用来开或者关掉
    对应的状态位。提供选项但是省略参数,不对状态位产生影响。 –num –caps –scroll –insert 选项,
    虚拟开启对应的键盘模式。 –numkey –cpaskey –scrollkey –insertkey 分别仿真对应的键保持按下的
    状态。其他的状态标记和选项的字面含义相同。

    –no-led 选项,在改变其他选项的状态位时不改变键盘 LED 灯。

    如果多次执行 sendkey 命令,那么只有最后一次有效。由于 sendkey 会改变 BIOS 键盘缓冲区,在某些
    系统下会导致挂起、重启、其他意外行为。如果 OS 或者加载器使用自己的驱动程序控制键盘,那么
    sendkey 不会发生作用。

    set

    set [envvar=value] 

    设置环境变量 envvar 的值为 value。envvar 可以是任何变量名。如果没有指定参数,那么显示当前的环
    境变量和它们的值。

    true

    命令退出状态为 0,不做任何事情。它用于流程控制。

    unset

    unset envvar 

    从内存中删除 envvar 变量。envvar 可以是任何有效的变量名。

    uppermem

    GRUB2 中暂未实现,它正在计划之中。

    展开全文
  • CentOS的update-grub2命令

    2018-05-27 19:43:00
    这个和Ubuntu还是有些区别,在CentOS修改成如下: grub2-mkconfig -o /boot/grub2/grub.cfg ==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<== ...

    这个和Ubuntu还是有些区别,在CentOS修改成如下:

    grub2-mkconfig -o /boot/grub2/grub.cfg

     

    ==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,804
精华内容 24,721
关键字:

grub2命令