本站已运行

蓝光高清网

搜索

[教程分享] 【老骥伏枥】黑群晖6.02-8451版硬盘自启动,USB启动盘,系统救援

Synology 发表于 2021-2-28 16:32:04 | 显示全部楼层 |阅读模式
为大家打包了一个最新版的6.02-8451黑群晖的硬盘自启映像,这次不仅仅是硬盘自启了,该映像还可制作USB启动盘,并且可以集成各种系统救援盘,可谓一盘在手,功能全有。

首先让我们来看看这次的大礼包映像都实现了那些功能。
1. 最新版的6.02-8451黑群晖硬盘自启动。而且是全汉字提示的。截图如下:
image.png

2. 使用大礼包映像,可以方便地制作USB启动盘。后面会详细介绍操作步骤。

3. 系统救援盘,从上面截图中可以看到,我添加了“GRUB2命令救援“,”系统救援(WinPE)工具盘“,”系统救援(Linux SystemRescue)工具盘“。系统救援工具盘一般都不小,是不可能塞进群晖的硬盘的分区结构在做对齐时留下的有限可利用空间的。为此我决定利用黑群晖硬盘的数据区,这样既可以保存救援盘,又可以用于系统救援,一举两得。集成各种系统救援盘的操作步骤将在后面会详细介绍。

4. 启动安全管理,有些菜单项中的内容,需要有管理员权限才能执行。例如:系统救援,重装,强制安装,等等。防止误操作。系统的默认管理员:admin。默认密码:admin。当然你可以通过修改grub的grub.cfg文件来设定你自己的管理员和密码。

还是那句老话:“授人以鱼不如授人以渔”。下面来看看大礼包映像中涉及的一些原理。该映像是为从bios机器启动grub2引导程序设计的。不需要UEFI机器,也能加载下grub2引导程序。文中将会出现如下一些名词:msdos或gpt分区,bios或 UEFI,GRUB Legacy 和GRUB2,MBR,fat16等等。如果你对这些名词感到很陌生,那么这个大礼包映像就不适合你使用了。至少你需要在他人的帮助下,才能正确使用它。

由于6.02-8451黑群晖用的是用GRUB2作为启动引导。GNU GRUB(简称“GRUB”)是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。新的GRUB2(GRUB第二版)为GRUB的重写版本,它是GRUB的大革新。GRUB2对Linux系统做了更多的优化,支援更多的功能,如动态的载入模组(而在之前的GRUB中,新增或删除模组要重新编译GRUB)等。GRUB2的版本号为0.98或更高;旧的GRUB的版本号则为0.97或更低,也被称为“GRUB Legacy”或“GRUB1”等。GRUB2的配置、命令等较GRUB Legacy有一定的不同。

为了实现6.02-8451黑群晖硬盘自启动,正像我在5.x版中介绍过的一样,我们也需要把启动引导塞进群晖的硬盘的分区结构在做对齐时留下可利用空间。在6.02版之前的启动引导都是采用相对比较旧式的syslinux引导方式。它与GRUB2的不同点在于SYSLINUX项目是一套轻量级主引导记录(MBR)引导加载程序,用于启动具有Linux内核的IBM PC兼容计算机。SYSLINUX支持分区方案的引导,因此可以很容易地制作一个包含MBR的img将它直接写入硬盘子分区实现硬盘自启动。GRUB则属于重量级启动引导,特别是GRUB2更是以UEFI为主要目标而重写的版本。下面简单介绍一下它的启动过程和它在硬盘上分区的细节:

GRUB第一版本
GRUB的步骤1包含在MBR中。由于受MBR的大小限制,步骤一所做的几乎只是装载GRUB的下一步骤(存放在硬盘的其它位置)。步骤1既可以直接装载步骤2,也可以装载步骤1.5:GRUB的步骤1.5包含在MBR后面的30千字节中。步骤1.5载入步骤2。当步骤2启动后,它将呈现一个界面来让用户选择启动的操作系统。这步通常采用的是图形菜单的形式,如果图形方式不可用或者用户需要更高级的控制,可以使用GRUB的命令行提示,通过它,用户可以手工指定启动参数。GRUB还可以设置超时后自动从某一个内核启动。


image.png

GRUB第二版本
与GRUB第一版相似的是,boot.img像步骤1一样在MBR或在启动分区中,并且通过LBA48地址来寻址下一级(因此,GRUB传统的1024柱面限制避免),它(boot.img)将读取core.img(产生于diskboot.img)的第一个扇区以用来后面读取core.img的剩余部分。core.img默认写入MBR和第一个分区之间的扇区,当这些扇区是空闲和可用时。由于传统原因,硬盘驱动器的第一个分区不是从扇区1开始(计数从0开始),而是在扇区63,留下62扇区的空白空间不是任何分区或文件系统的一部分,因此不容易出现任何问题相关的。一旦执行,core.img将加载其配置文件和任何其他所需的模块,特别是文件系统驱动程序;在安装时,它从diskboot.img生成,并配置为通过其文件路径加载阶段2。属于阶段2的文件都保存在/boot/grub中,这是由文件系统层次标准(FHS)指定的/ boot目录的子目录。一旦加载GRUB阶段2,它呈现基于TUI的操作系统选择(内核选择)菜单,其中用户可以选择要引导哪个操作系统。
image.png

boot.img严格占有446字节的大小,并被写入MBR(0扇区)。如果可行(出于向后兼容的原因第一个分区起始于63扇区而非1扇区,但这不是强制的),core.img被写入介于MBR和第一分区之间的空扇区之中。/boot/grub目录可以放在单独的分区中,也可以放在根分区中。

从以上的简介中我们可以看到,不论是GRUB1还是GRUB2的启动引导都需要boot.img和core.img这两部分代码。而且GRUB2的boot.img必须放在硬盘主引导MBR(0扇区)。我们做黑群晖硬盘自启动时,最不希望影响硬盘主引导分区,而希望所有的改装都放在硬盘子分区中。为了实现在BIOS机器的硬盘子分区上启动GRUB2,我采用了通过链式启动,一个启动器可以启动另一个启动器的方法。将GRUB1安装到硬盘子的分区加载,再用GRUB1加载GRUB2来解决黑群晖硬盘自启动的问题。另一个麻烦的问题是GRUB的boot.img代码中需要硬盘的物理信息。这要通过bios获取并写入boot.img中。因此不能直接拷贝映像到硬盘分区实现安装GRUB,必须使用特定的安装程序才能正确安装GRUB。我在大礼包映像中,提供了一个脚本来解决这个问题。

因为这次黑群晖硬盘自启动版本是采用重量级启动引导,对于GRUB-2.0.3版本来说,官方提供的模块一共有200多个,因此我们就要充分利用重量级启动引导带来的好处。例如:利用黑群晖硬盘的数据区,这样既可以保存救援盘,又可以用于系统救援;启动安全管理,有些菜单项中的内容,需要有管理员权限才能执行;汉字显示;等等。在我的大礼包映像中,这些都有实例供坛友们学习,创新,制作自己的私人定制。但先决条件是你要有学习进取的精神,像我一样活到老学到老。对于那些饭来张口,衣来伸手的懒惰者而言只能一事无成。

所谓黑群晖,其实正真被黑的部分并不是bootloader。目前主流的bootloader都是开源项目。包括我们前面提到过的SYSLINUX和GRUB它们都是开源的。正真被黑的应该是部分内核zImage与位于initrd ramdisk中的各种外挂模块。事实上linux内核也是开源的。群晖可能会在zImage中加入一点检测硬件的代码。最主要的被黑部分是initrd中的各种外挂模块。黑群晖6.02版之前内核与initrd绑定在一个文件zImage中。黑群晖6.02版内核zImage文件与initrd分开为ramdisk.lzma和extra.lzma文件。黑定制版的linux系统大致就瞄准这两个文件。黑客们只注重黑功能的部分。能工作就达到目的。外在的修饰增值功能黑客们懒得费工夫。我的大礼包映像将弥补这些不足之处。对于嵌入式Linux系统逆向工程(我不是黑客也不用黑客这个名字)我是行家里手。但我不黑别家的产品,我只做自主知识产权的东西。这次的大礼包映像虽然有黑群晖代码,但那是在网上随处可见的代码。我只是拿它作为演示的范例。我做的启动引导部分绝对清白,自主原创。如果你喜欢,就请为我点个赞吧!


我的大礼包映像提取地址是:https://pan.baidu.com/s/1QUpFpkUgwQKZLktVTihdIw
文件提取码为:
游客,如果您要查看本帖隐藏内容请回复



下面详细介绍这个压缩包安装的方法和步骤:

1.安装最新版的6.02-8451黑群晖自启动硬盘
下载大礼包映像并解压将获得两个文件。boot602-8451.img映像和disk_setboot.sh脚本。在黑群晖的硬盘卷上创建一个share folder。例如:可以起名为boot。把这两个文件上载到这个share folder。截图如下:

回复

使用道具 举报

全部回复0 显示全部楼层

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

开通会员 帮助中心 返回顶部 返回列表