ubuntu安装grub2 ubuntu20.04下载教程
大家好,今天小编来为大家解答以下的问题,关于ubuntu安装grub2,ubuntu20.04下载教程这个很多人还不知道,现在让我们一起来看看吧!
Ubuntu及其衍生发行版硬盘安装方法(grub2)
闲暇时光,琢磨新事物。前提:笔记本内原本有操作系统,配置了 grub2引导系统。过程大致是:开机- grub命令界面-引导镜像开机-正常安装系统。
准备条件包括:Ubuntu及其衍生发行版的镜像文件与 grub2。步骤如下:
1.开机后进入 grub引导界面,按键盘'c'进入命令模式。列出设备,找到镜像文件所在的分区,如(hd0,msdos1)或(hd0,msdos2)。我的镜像位于第 3个逻辑分区的/OS/Mirrors/文件夹中。
2.列出镜像文件路径:ls(hd0,msdos7)/OS/Mirrors/ubuntu-*.iso。加载镜像文件:loopback loop(hd0,msdos7)/OS/Mirrors/ubuntu-*.iso。
3.加载内核文件:linux(loop)/casper/vmlinuz.efi。参数包括:boot=casper、iso-scan/filename=/OS/Mirrors/ubuntu-*.iso、ro、quiet、splash、locale=zh_CN.UTF-8、initrd(loop)/casper/initrd.lz。
4.启动过程:执行 boot命令。
5.进入安装环境,在终端卸载镜像:sudo umount-l/isodevice。
6.开始安装操作系统。
请注意,具体步骤可能因不同发行版而有所差异,如 vmlinuz、initrd文件的名称。在终端输入时,可以利用 Tab键进行自动补全操作。
关于ubuntu的grub2引导
步骤如下:
a进入grub的命令模式。进入grub界面后按C键进入命令行界面。
b先熟悉一下grub的一些命令 grub>help
c熟悉一下cat命令
d root指令来指定/boot所在的分区
e kernel指令来指定linux的内核,及所在的分区
f用initrd命令来指定initrd文件
g boot引导系统
cat命令的用法
cat指令是用来查看文件内容的,有时不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知,这时,就要用到cat(hd[0-n],y)/etc/fstab来获得这些内容;注意要学会用tab键命令补齐的功能;
grub> cat(按tab键会出来hd0或hd1之类的;
grub> cat(hd0,注:输入hd0,然后再按tab键;会出来分区之类的;
grub> cat(hd0,6)
Possible partitions are:
Partition num: 0, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type is fat, partition type 0xb
Partition num: 5, Filesystem type is reiserfs, partition type 0x83
Partition num: 6, Filesystem type is ext2fs, partition type 0x83
Partition num: 7, Filesystem type unknown, partition type 0x83
Partition num: 8, Filesystem type is reiserfs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82
grub> cat(hd0,6)/etc/fstab注:比如我想查看一下(hd0,6)/etc/fstab的内容就这样输入;
LABEL=// ext3 defaults 1 1
/dev/devpts/dev/pts devpts gid=5,mode=620 0 0
/dev/shm/dev/shm tmpfs defaults 0 0
/dev/proc/proc proc defaults 0 0
/dev/sys/sys sysfs defaults 0 0
LABEL=SWAP-hda1 swap swap defaults 0 0
/dev/hdc/media/cdrecorder auto pamconsole,exec,noauto,
managed 0 0
主要查看/etc/fstab中的内容,主要是Linux的/分区及/boot是否是独立的分区;如果没有/boot类似的行,证明/boot和 Linux的/处于同一个硬盘分区;比如上面的例子中LABEL=/这行是极为重要的;说明Linux系统就安在标签为LABEL=/的分区中;
如果您的Linux系统/boot和/没有位于同一个分区,可能cat(hd[a-n],y)查到的是类似下面的;
LABEL=// ext3 defaults 1 1
LABEL=/boot/boot ext3 defaults 1 2
root(hd[0-n,y)指令来指定/boot所在的分区;
其实这个root(hd[0,n],y)是可以省略的,如果省略了,要在kerenl命令中指定;前面已经说过(hd[0-n],y)硬盘分区的表示方法的用途;主要是用来指定/boot所在的分区;
eg:
grub> root(hd0,0)
kernel指令,用来指定Linux的内核,及/所在的分区;
kernel这个指令可能初学者有点怕,不知道内核在哪个分区,及内核文件名的全称是什么。不要忘记tab键的命令补齐的应用;
如果已经通过root(hd[0-n],y)指定了/boot所在的分区,语法有两个:
如果/boot和Linux的/位于同一个分区,应该是下面的一种格式;
kernel/boot/vmlinuz在这里按tab键来补齐,就看到内核全称了 ro root=/dev/hd[a-z]X
如果/boot有自己独立的分区,应该是;
kernel/vmlinuz在这里按tab键来补齐,就看到内核全称了 ro root=/dev/hd[a-z]X
在这里 root=/dev/hd[a-z]X是Linux的/根所位于的分区,如果不知道是哪个分区,就用tab出来的来计算,一个一个的尝试;或用cat(hd[0-n],y)/etc/fstab中得到Linux的/所在的分区或分区的标签;
grub> kernel/boot/在这里按tab键;这样就列出/boot中的文件了;
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369
_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55
.1 xen-syms xen.gz
grub> kernel/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]
注解: root=LABEL=/是Linux的/所在的分区的文件系统的标签;如果您知道Linux的/在哪个具体的分区,用root=/dev/hd[a-z]X来指定也行。比如下面的一行也是可以的;
grub> kernel/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
也可以把/boot所在的分区的指定 root(hd[0-n],y)这行省掉,直接在kernel中指定/boot所在的分区;所以就在下面的语法;
如果是/boot和Linux的根同处一个分区;
kernel(hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X
比如:
grub>kernel
如果是/boot和Linux所在的根不在一个分区;则是;
kernel(hd[0-n],y)/vmlinuz ro root=/dev/hd[a-z]X
grub> kernel(hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
[Linux-bzImage, setup=0x1e00, size=0x18e473]
或下面的输入,以cat出/etc/fstab内容为准;
grub> kernel(hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]
initrd命令行来指定initrd文件;
grub> initrd/boot/initrd在这里tab来补齐;
grub> initrd/boot/initrd-2.6.11-1.1369_FC4.img
[Linux-initrd@ 0x2e1000, 0x10e685 bytes]
如果/boot是独立的一个分区,应该是如下样子的语法;比如下面的;
grub> initrd/initrd在这里tab来补齐;
grub> initrd/initrd-2.6.11-1.1369_FC4.img
[Linux-initrd@ 0x2e1000, 0x10e685 bytes]
boot引导系统;
grub>boot
下面是在我机器上的命令:
grub> cat(hd0,0)/etc/fstab
# This file is edited by fstab-sync- see'man fstab-sync' for details
LABEL=// ext3 defaults 1 1
/dev/devpts/dev/pts devpts gid=5,mode=620 0 0
/dev/shm/dev/shm tmpfs defaults 0 0
/dev/proc/proc proc defaults 0 0
/dev/sys/sys sysfs defaults 0 0
LABEL=SWAP-hda1 swap swap defaults 0 0
/dev/hdc/media/cdrecorder auto pamconsole,exec,noauto,managed 0 0
grub> root(hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> kernel/boot/在这里按tab补齐,全列出/boot所有的文件;
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4
memtest86+-1.55.1 xen-syms xen.gz
grub> kernel/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]
grub> initrd/boot/在这里按tab补齐
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK
memtest86+-1.55.1 xen-syms xen.gz
grub> initrd/boot/initrd-2.6.11-1.1369_FC4.img注;输入intrd文件名的全名;
[Linux-initrd@ 0x2e1000, 0x10e685 bytes]
grub> boot
ubuntu下更新grub2
电脑安装多个系统时,可能会遇到进不了系统的问题,这通常与 grub相关。使用 LiveCD光盘启动电脑或通过 USB启动,进入光盘中的 Ubuntu系统后,打开终端。
执行命令:
sudo-i
以此查找 Ubuntu安装在哪个分区。使用 fdisk-l命令查看分区信息,找到安装 Ubuntu的分区,通常为 id为 83的分区。假设 Ubuntu安装在/dev/sda1分区,执行如下命令挂载原系统的根目录:
mount/dev/sda1/mnt
根据需要选择其他挂载点。如果有单独的/boot分区,则需额外挂载一次,例如:
mount/dev/sda12/mnt/boot
完成挂载后,执行 grub-install--root-directory=/mnt/dev/sda命令进行安装。若提示 Installation finished.No Error Reported,则表示安装成功。重启电脑后,应能看到 grub2引导界面,但暂时无法引导 Windows 7。选择进入 Ubuntu,启动终端并执行:
sudo update-grub2
更新 grub2。按照提示输入密码,若顺利执行,将显示类似语句,表明更新成功。
更新完成后,电脑应能正常引导 Ubuntu系统,但 Windows 7引导可能仍存在问题。为解决此问题,还需进一步调整 grub配置以正确识别并引导所有系统。这包括修改 grub.cfg文件以确保所有系统都能正确加载。
总结:通过上述步骤,Ubuntu下的 grub2更新可解决进不了系统的常见问题,实现多个系统间的正常引导。在实际操作中,需根据具体情况调整挂载和 grub配置以满足不同需求。