电脑只安装Linux系统,安装的时候出现了grub安装失败的界面,为什么?那个系统是Gmac os

电脑只安装Linux系统,安装的时候出现了grub安装失败的界面,为什么?那个系统是Gmac os,第1张

步骤如下:

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

使用廉价的arm64盒子,例如s905/rk3328等,搭配廉价的MT7620/7628/7621路由器可以实现高性能单臂路由,适合于各种类型的网络应用

以常见的5口路由器为例,原WAN(Port4)和原LAN1-3(Port0-2)保持不变,Port3配置成trunk接口并接入arm64盒子:

在上图的网络拓扑中,如果SBC是全双工千兆接入的,那么对于Port0-2的LAN内设备而言,NAT的单向流量(在同一时间仅下行或者仅下行测速)最快可以达到千兆,而如果同时进行上下行测速的话,理论上下行与上行可以各自分得500M带宽。

为了便于进行配置,你的arm64盒子需要安装好OpenWrt,并确保当前内核中包含8021q支持

对于内核中集成8021q模块的,开机后查看内核日志可以看到以下内容:

对于编译成内核模块的,请尝试加载8021q,如果没有报错则可以继续

对于没有OpenWrt支持的arm盒子,可以参考下面这篇文章,利用其它Linux发行版的内核加上OpenWrt的rootfs快速生成OpenWrt固件:

https://www.jianshu.com/p/3a48c6a7cc7a

修改 /etc/config/network ,追加以下内容,openwrt会自动为eth0生成vlan id为2的WAN口

如果需要ipv6支持,则继续向 /etc/config/network 追加以下内容:

重新启动netifd

查看 ifconfig ,观察是否成功生成了 eth0.2

将电脑直连到arm盒子,等待DHCP获取地址后进入luci界面,查看网络信息:

将mt7620/7628/7621的路由器刷成Padavan系统,并 确保机器的实际网口次序与webui中看到的一致 ,否则你需要调整之后的命令参数:

对于MT7620/7628,在启动脚本后面加入以下命令:

对于MT7621(仅适用于带GMAC2的机器,对于不启用GMAC2的机型,例如NEWIFI3,请参考MT7620的配置命令),在启动脚本后面加入以下命令:

上述命令将Port4配置成WAN口(VLAN ID=2);Port 0-2配置成LAN口(VLAN ID=1);Port 3配置成trunk口,也就是连接arm64盒子的接口,该接口上同时存在tagged(来自WAN,VLAN id=2)和untagged(来自LAN)的数据包,这与之前在OpenWrt里面配置的参数一致;同时还设置了Port3的PVC寄存器,允许此接口收发任意tag的数据包。

配置好的交换机如下表所示,可以将普通的vlan交换机按此配置,也能达到相同的效果。

将Padavan设置为AP模式,路由器将自动重启:

将trunk口与arm64盒子连接起来(参考本文开头的接线图),单臂路由配置完成。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7307040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存