【Grub&Grub2】Grub与Grub2安装与引导Linux系统范例

  • 一、Ubuntu的安装与引导

        以ubuntu-16.04-desktop-amd64.iso为例

1、提取引导文件和压缩内核

         a) grub安装方法

        提取casper文件夹中的initrd.lz和vmlinuz.efi(支持UEFI),将文件提取出来和ISO一起拷贝到一个fat32分区根目录(假设为第一个磁盘的第3个分区)。

        修改grub菜单文件,增加一条,内容如下:

title Install Ubuntu 16.04

root (hd0,2)
kernel /vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-16.04-desktop-amd64.iso ro quiet splashlocale=zh_CN.UTF-8
initrd  /initrd.lz

        补充一下磁盘分区的知识:

       在grub中,磁盘分区是从0,开始,例如磁盘2的分区3为(hd1,2),而在linux中,磁盘分区从1开始,例如磁盘2分区3为sdb3,在Windows中磁盘从C开始,第三分区就是E盘。

        推测的分区位置可能与实际略有出入,在启动后标题处会有停留,确认后会寻找文件和引导,若是找不到会提示,返回标题后,按e键可以编辑neogrub内容,修改分区位置。例如将(hd0,1)改为(hd1,1),若是优盘很有可能就是(hd1,0),然后回车,再次尝试。

         b) grub2安装方式

         grub2可以直接加载大的iso镜像,不需要解压提取内核。

menuentry "Ubuntu 16.04" --class os{
    set root=(hd0,msdos3)
    loopback loop0 /ubuntu-16.04-desktop-amd64.iso
    linux (loop0)/casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-16.04-desktop-amd64.iso ro quiet splashlocale=zh_CN.UTF-8
    initrd  (loop0)/casper//initrd.lz
}

        需要注意的是,grub2的分区表达方式有所变化,分区从1开始了,例如第一个磁盘第一分区(mbr分区)为:(hd0,msdos1)

        

2、进行安装

        引导完成进入安装界面后,第一步就是要打开中端,快捷键为 Ctrl+Alt+T,输入:sudo umount -l /isodevice,注意是L不是i,这一步是为了弹出对应盘的占用,方面后面格式化并创建分区。

        点击桌面上的安装程序,第二步让你选择安装方式,第一个为与windows7共存,我们选择最后一个:其他选项。然后格式化ext4需要使用的分区,挂载点为/,格式化完成后注意下方引导安装位置,我们选择刚刚格式化的分区,然后下一步,我们不使用swap,继续,然后一步一步即可,最后慢慢就等着安装吧,安装完成提示重启,重启即可。

        注意不要覆盖现有引导。

 

3、重建引导

        a) grub

        重启之后发现根本找不到从哪进入ubuntu,这是正常的,因为你的引导安装在分区中,而电脑根本不知道。

       这里我们仅需要修改刚刚引导安装使用的安装引导,具体分区要修改root(hd0,1),这里是认为安装在第二个分区,grub菜单修改为:

title ubuntu16.04

root (hd0,1)
kernel /vmlinuz root=/dev/sda2
initrd /initrd.img

        一般来说,一个磁盘比较容易试,多个磁盘就有点麻烦,我装了2个硬盘分了十个区,试了几分钟。如果是装在第二个磁盘第一个分区:

title ubuntu16.04

root (hd1,0)
kernel /vmlinuz root=/dev/sda1
initrd /initrd.img

        这是一个难点,我也是试了不少次才总结出来。

        第一行时,还是grub,对于grub来说,主板第二个磁盘就是物理上的第一个盘,但是到了第二行,启动了ubuntu内核,linux会将自身安装盘当做第一盘,所以这里就变成了sda,而非sdb。

        另外这里initrd和vmlinuz的具体名称与安装的时候略有不同,这里在启动后打开ubuntu系统根目录看一下你就明白了,它跟里面的是一致的,是从文件夹中引出的链接文件

        b) grub2

        grub2仅个别命令语法不同

menuentry "ubuntu16.04" --class os{
    set root=(hd0,msdos2)
    linux /vmlinuz root=/dev/sda2
    initrd /initrd.img
}

二、debian8.7的安装与引导

1、准备文件

        安装时,引导安装文件要与版本以及操作位数对应,例如debian8.7 amd64的引导文件就在installer-amd64,下载3个文件【boot.img.gz、initrd.gz 、vmlinuz】,不能使用镜像中的install.amd中的这两个同名文件,因为镜像中的initrd.gz没有查找ISO的功能,不适用于硬盘安装。同时,debian引导文件与Ubuntu不同,不能直接加载iso,只能从fat格式分区加载iso。

       a) grub

        将文件都放到某个fat根目录,修改grub菜单,新增一条:

title debian8.7

root (hd0,2)
kernel /vmlinuz
initrd /initrd.gz
boot

        b) grub2

        将文件都放到某个fat根目录,修改grub菜单,新增一条:

menuentry "debian8.7" --class os{
    set root=(hd0,msdos3)
    linux /vmlinuz
    initrd /initrd.gz
    boot
}

 

2、开始安装

        安装过程就略了,引导不要选择磁盘,注意不要覆盖现有引导。

3、重建引导

        a) grub

        修改grub菜单,假设装在第二个分区

title debian 8.6

root (hd0,1)
kernel /vmlinuz ro root=/dev/sda2
initrd /initrd.img
boot

        b) grub2

menuentry "debian 8.6" --class os{
    set root=(hd0,msdos2)
    linux /vmlinuz ro root=/dev/sda2
    initrd /initrd.img
    boot
}

 

三、openSUSU42.2的安装与引导

        注意:BIOS中最好禁用acpi,部分机器boot启动安装之后要立马拔掉所有usb,包括键盘,不然会卡在loading
basic drivers,启动之后再插上键盘。如果有安装windows,若是后续无法启动,则需要将acpi重新开启。

1、准备文件

      下载openSUSE镜像,解压到某个分区的根目录的openSUSE文件夹(随意名称),然后将linux和initrd-xen提取到根目录,initrd_xen改名为initrd(可以不改,与下面对应)。

       a) grub

        修改grub菜单,新增一条:

title openSUSE42.2

root (hd0,2)
kernel /linux
initrd /initrd
boot

        b) grub2

menuentry "openSUSE42.2" --class os{
    set root=(hd0,msdos3)
    linux /linux
    initrd /initrd
    boot
}

 

2、系统安装

        安装过程就略了。

        安装过程需要注意2点:

        1、如果文件放在ntfs格式盘,无法直接查找,需要挂载,一直back,在主目录选择expert,然后选择start shell,输入cp /usr/bin/mount/bin,然后exit,再返回进行安装,就可以识别了,硬盘选择放置文件的分区,目录为开始解压的目录,即/openSUSE 

        2、选择Experts模式自定义安装时,安装在某一个分区而非磁盘安装时,是不会写入grub2引导的,本例不需要引导,若是需要原装引导,使用grub2-install/dev/sdax来安装引导

 

3、重建引导

        a) grub

title openSUSE42.2

root (hd0,2)
kernel /linux
initrd /initrd
boot

        b) grub2

menuentry "openSUSE42.2" --class os{
    set root=(hd0,msdos3)
    linux /linux
    initrd /initrd
    boot
}

四、CentOS7安装

1、准备文件

     a) grub

       从镜像中提取vmlinuz和initrd.img与iso文件放到fat32分区,对于大于4g的iso,只能放到ext2分区。这里我们放在第三个分区,安装到第二个分区

       加载kernel是关键,如果grub是安装在优盘,并从优盘启动的,在加载内核后,磁盘顺序必然会发生变化,所以可能需要挨个启动测试,如果出现nosuitableimage则证明sdb1并非优盘分区,更换重新实验。如果grub安装在硬盘,则保持一致,加热grub中优盘为(hd1,0),则为/dev/sdb1以此类推。      

title CentOS7

find --set-root /vmlinuz
kernel /vmlinuz linux repo=hd:/dev/sda3:/
initrd /initrd.img
boot

        b) grub2

menuentry "CentOS7" --class os{
    search.fs /vmlinuz root
    linux /vmlinuz linux repo=hd:/dev/sda3:/
    initrd /initrd.img
    boot
}

2、开始安装

        安装过程略,注意不要覆盖现有引导。

3、重建引导

        a) grub

        修改grub菜单。

title CentOS7

find --set-root /vmlinuz
kernel /vmlinuz linux repo=hd:/dev/sda2/
initrd /initrd.img
boot

        b) grub2

menuentry "CentOS7" --class os {
    search.fs /vmlinuz root
    linux /vmlinuz linux repo=hd:/dev/sda2/
    initrd /initrd.img
    boot
}

 

你可能感兴趣的:(系统安装与维护,系统安装维护)