使用 grub4dos 实现高度兼容的 Windows 10 和 Ubuntu 双启动选择

作者:V君 发布于:2021-9-11 9:54 Saturday 分类:折腾手记

TL;DR for 高级玩家

1) 更新 MBR/PBR
2) 在对应分区拷入 grldr 撰写 menu.lst 配置文件
3) 重启,享受可选启动选择
x) 修改 default 指定默认选中项

为新手展开详细的操作步骤

①更新 MBR/PBR

我喜欢使用 BOOTICE 来更新 MBR 和 PBR,它的官网似乎挂了,得用搜索引擎找其他三方网站提供的下载。 本文撰写时找到的网站是 MAJOR GEEKS 这个页面还另外提供了32位的下载。 若这个网站无法访问,还可以用我下好的副本。 BOOTICE 的使用方法非常简单,打开之后选中目标磁盘,点击更新主引导记录就能写 MBR。 我喜欢使用 NT6 的 MBR,它的策略是从激活的分区启动。 接着是更新 PBR,点击更新分区引导记录,目标分区选择活动分区,将类型更改成 GRUB4DOS,根据实际情况选择版本即可。 在运行着的 Win10 情况下这个工具可能无法更新系统分区 PBR 这时候就需要用 Win10 安装盘或者其他 PE 来跑 BOOTICE 了。 (当然你有多台电脑也可以把硬盘插到另一台电脑上来写 PBR,我就经常这样干 乂目) 更新 MBR/PBR 这一步就完成了,现在电脑无法启动,会显示 No grldr,因为还需要把 grldr 放到活动分区根目录

②在对应分区拷入 grldr 撰写 menu.lst 配置文件

我们可以在 grub4dos 的官网或者 GitHub 下载 grldr, 本文使用的版本是 grub4dos-0.4.6a-2021-08-13 若无法访问官网或 GitHub,也可以用我下好的副本,这个副本只有 grldr 单个文件。 将 grldr 放到活动分区根目录就能手动敲命令行选择系统来启动了。 为了进一步偷懒我们可以在旁边放一个配置文件 menu.lst 来呈现列表界面,用键盘方向键选择要启动的系统,还可以倒计时启动选择指定的系统。这里提供一个 menu.lst 的示例(感谢Kirkx)。

timeout 10
default 0

title Windows 10
    root (hd0,0)
    chainloader /bootmgr

title Ubuntu
    root (hd0,1)
    kernel /boot/vmlinuz root=UUID=00000000-1111-2222-3333-444444444444 ro
    initrd /boot/initrd.img

这里要注意一下 Linux 内核参数的分区 UUID,有三种方法可以获取。分别是在 Linux 终端打 ls /dev/disk/by-uuid、在 grub4dos 命令行打 UUID、在 Windows 使用 DiskGen 之类的分区工具查看。 注意这里有个坑, DiskGen 提供的 UUID 格式和 Linux 内核参数的格式不一样,在最后一组十六进制的前4个字符之后需要加一个横杠才能使用,否则内核会告诉你找不到卷。 到这里就结束了,可以重启电脑,选择一个系统来启动了。

听我扯扯

最近搞来一台比较奇怪的机器,经过各种尝试最终确定下来它只能用 bootmgr 和 grub4dos 这两个引导器,其他(grub2、syslinux、……)的统统无法启动,会反复循环重启。由于需要在 Win10 和 Ubuntu 之间切换,那就把 grub4dos 用起来,弄懂了如何使用 grub4dos 启动 Linux ~

(两天后)回过头来悄悄吐槽 Ubuntu自带的 GRUB2 的配置文件好难读懂,明明一个 chainloader 就可以解释清楚的事情,为啥要写这么多行。老手莫笑,毕竟我年幼的时候也吐槽过为啥 SQLite 一个文件就能带走全家,为啥还有 SQL Server 这种要安装成服务的家伙。 格局小了哈

标签: linux 系统安装 Windows10 Ubuntu

评论(0) 引用(0) 浏览(129)

在树梅派Raspbian上将Gogs安装到Systemd

作者:V君 发布于:2019-6-16 18:52 Sunday 分类:折腾手记

TL:DR
- 从官方网站下载压缩包并解压到 /opt/gogs
- 修改 /opt/gogs/scripts/systemd/gogs.service 配置各种路径
- 将 /opt/gogs/scripts/systemd/gogs.service 复制或创建符号连接到 /etc/systemd/system/
- 执行 sudo systemctl enable gogs
- 执行 sudo systemctl start gogs
- 此时服务已经启动,访问默认端口,进入安装向导

不扯。

标签: 软件开发 个人服务器 源码管理 linux

评论(0) 引用(0) 浏览(511)

在CM311移动热点上运行.NET应用程序(mono)

作者:V君 发布于:2018-7-25 19:06 Wednesday 分类:折腾手记

TL;DR 

去软件仓库 (这里) 找主程序和托管核心类库

比如 mono-runtime-sgen_4.8.0.520-0xamarin3_armel.deb

 和 libmono-corlib4.5-cil_4.8.0.520-0xamarin3_all.deb

下载下来用7-zip提取主体

主程序随便放, 把托管库放到 /usr/lib/mono/4.5/ 或目录符号连接到任意地方

赋予执行权限, 即可执行[./mono-sgen ConsoleApp1.exe]. 按提示找缺少的托管库.


需要注意的是CM311跑不了5.x版本以上的mono, 提示libc6丢失. 

要补上估计不容易, 而且存储空间可能也不允许

 

今天没时间扯了,下次有空再扯

标签: C# linux 嵌入式 mono

评论(0) 引用(0) 浏览(668)

在CM311移动热点上将telnet服务设为自启动

作者:V君 发布于:2018-7-25 14:53 Wednesday 分类:折腾手记

TL;DR

1)先通过TTL控制台做实验, 执行[telnetd -b 0.0.0.0]然后从USB或WIFI尝试连接.

2)第个一步骤成功之后找到 /etc/init.d/rcS 用 vi 编辑

 在最后一行前加上启动 telnetd 的命令[/sbin/telnetd -b 0.0.0.0]

3)拿掉TTL,合上盖子,重启. 在PC上用PuTTY之类的终端连上去.


听我扯扯:

在TTL控制台终端操作实在是太折磨人,命令行打到一半总会被输出打断.

就找法子让终端可以走通过C/S方式连上.

最开始的时候凭经验用rc.local,然并卵, 可能是嵌入式linux的缘故

rc.local不工作, 咕狗解决方法顺着线索找到 rc?.d 问号是表示运行级别的数字

选了级别3,在里面创建了脚本, 然而也不管用.


最后用busybox telnetd作为关键字总算找到了 /etc/init.d/rcS 成功实现自启动.

接下来可以定一个小目标比如让mono进来 乂目


看来咱对linux的了解依然是冰山一角的一角,连rc.local和rcS都搞不清楚 _(:з」∠)_

嘛! 反正能捣腾起来就好 (´∀((☆ミつ

 

标签: linux 嵌入式 busybox telnet

评论(0) 引用(0) 浏览(584)

在CM311移动热点上使用TTL控制台取得ROOT

作者:V君 发布于:2018-7-24 19:33 Tuesday 分类:折腾手记

TL;DR:

点击查看原图

准备材料:

 CM311移动热点一只

 2毫米十字螺丝刀一个

 2.54测试夹一个以及杜邦线

 CP2102 USB-TTL转换器一个

步骤:

 取下螺丝,撬开两边的盖子

 用测试夹怼上测试点

 接到USB-TTL适配器

 开PuTTY, 设置波特率115200

 用户名root,密码oelinux123.

PS.

 需要装着电池才能开机

 

 

听我扯扯:

其实在几天前就找到ROOT了,无奈手上的PL和CH芯片的USB-TTL转换器似乎和这货不太兼容

体现在输出参杂乱码, 就咕狗了一圈发现还有一家叫CP, 马云到手之后发现效果还不错!


还是扯一扯取得密码的过程吧, 在启动之后TTL输出的不仅只有Linux引导产生的dmesg内容,

还有一大堆看起来像是没有在release版里移除的日志,非常混淆视听. 细心观察还是发现了

xxxx login: 的输出, 键盘输入也听使唤,多倒腾几下就得到了以下信息:

OpenEmbedded Linux 9615-cdp ttyHSL0

msm 20140416 9615-cdp ttyHSL0

9615-cdp login:

9615-cdp作为关键字喂狗,想找root的密码 , 咕狗首先吐出的是 zte9x15,

这货难道是中兴产的? 然而密码并不对, 接着用OpenEmbedded来作为关键字

总算找到了这么一个密码 oelinux123 ,登录成功, ROOT拿到了.

对于连默认密码都不改的情况, 让咱想起了用DEMO出产品的情节

嘛, TTL藏在肚子里, 拆螺丝失去保修, 还得用测试夹来接通, 一般用户也不会这么折腾吧...

但咱就是偏偏看他不爽要试着整整看.


最初把这玩意连到电脑上之后, 见到任务栏弹出Linux-USB Gadget就知道这货是Linux了

之后又进一步用NMAP试着找找看有没有ssh或者telnet, 很遗憾没有扫出来.

接着就到这样了, 心一横拆开看看, 发现里面有TX/RX测试触点,

然后经历了乱码充斥的找密码过程, 嗯嗯 接下来看看怎么把SSH或telnet装上.

然后再看看能不能用这个家伙跑Socks5以及试着调整参数看看能不能用电信4G.

标签: linux 控制台 嵌入式 串口 TTL

评论(0) 引用(0) 浏览(1171)

Powered by emlog 去你妹的备案 sitemap