好友
阅读权限30
听众
最后登录1970-1-1
|
群晖的二合一启动早就有了八百年了……
注意:以下所有资源和教程均来自于nas云论坛老骥伏枥网友,感谢他的无私分享。
群晖 Synology
分享
图集模式
只看楼主
返回版块
本论坛首发【老骥伏枥-鸡年大礼包】黑群晖6.02-8451版硬盘自启动,USB启动盘,系统救援
#教程分享#56797 4452
楼主f541883216 Lv.6
2017-2-1 04:12 来自 加拿大
自从发表了关于黑群晖5.x版硬盘自启动的探讨之后 (该帖子的地址:http://www.nasyun.com/thread-28601-1-2.html),很多坛友给予了大量的好评。也希望能把最新版的6.02-8451黑群晖做成硬盘自启动。因为群晖的硬盘的分区结构在做对齐时留下非常有限的127-133兆左右的可利用空间。而且从6.02版起,黑群晖开始用grub2的重量级启动引导了。由于大多数坛友习惯用Windows,而不习惯用Linux,对grub2更是不甚了解。为此,在鸡年新春之际,我为大家打包了一个最新版的6.02-8451黑群晖的硬盘自启映像,这次不仅仅是硬盘自启了,该映像还可制作USB启动盘,并且可以集成各种系统救援盘,可谓一盘在手,功能全有。
首先让我们来看看这次的大礼包映像都实现了那些功能。
1. 最新版的6.02-8451黑群晖硬盘自启动。而且是全汉字提示的。截图如下:
001.jpg
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还可以设置超时后自动从某一个内核启动。
002.jpg
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的操作系统选择(内核选择)菜单,其中用户可以选择要引导哪个操作系统。
003.jpg
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系统逆向工程(我不是黑客也不用黑客这个名字)我是行家里手。但我不黑别家的产品,我只做自主知识产权的东西。这次的大礼包映像虽然有黑群晖代码,但那是在网上随处可见的代码。我只是拿它作为演示的范例。我做的启动引导部分绝对清白,自主原创。如果你喜欢,就请为我点个赞吧!
我的大礼包映像提取地址是:http://pan.baidu.com/s/1nvfkKit
文件提取码为:
本帖隐藏的内容
sg0y
下面详细介绍这个压缩包安装的方法和步骤:
1.安装最新版的6.02-8451黑群晖自启动硬盘
下载大礼包映像并解压将获得两个文件。boot602-8451.img映像和disk_setboot.sh脚本。在黑群晖的硬盘卷上创建一个share folder。例如:可以起名为boot。把这两个文件上载到这个share folder。截图如下:
004.jpg
打开黑群晖的ssh服务,截图如下:
005.jpg
用ssh登陆到黑群晖。我是用PuTTY通过ssh连到黑群晖的。登陆时要用admin管理员账户;密码是你初次安装黑群晖时设定的密码。然后执行sudo –i命令切换到root账户。截图如下:
006.jpg
切换到root后转入你创建的share folder。并执行如下命令设置文件的权限。
cd /volume1/your_share_folder_name
chown root:root boot602-8451.img
chown root:root disk_setboot.sh
chmod 666 boot.img
chmod 777 disk_setboot.sh
截图如下:
007.jpg
再执行 parted –l 查看一下你的硬盘分区情况和名称。截图如下:
008.jpg
一般情况下/dev/sdb应当是第一个硬盘。如果你的分区表是msdos类型,那么恭喜你,你可以用我的脚本直接生成黑群晖自启动硬盘。但如果你的分区表是gpt类型,你就要自己动手,根据我在上文阐述的原理,改写我的脚本才能生成黑群晖自启动硬盘。如果你不会改写脚本,那就得咨询他人获取帮助,或者就此止步。有些坛友可能会问,你为什么不给gpt类型硬盘也写个脚本呢?是不是想留一手?非也!这么详细的原理我都介绍给大家了,还在乎多写一两行脚本代码?原因是手头没有2t以上的大硬盘搭建测gpt试环境,改写脚本也就是一两行的代码,但我不能发放未经测试的代码。那样做不符合严谨认真的科学态度。事实上GRUB2是以UEFI为主要目标而重写的版本,它更适合用于gpt硬盘,也更容易安装。把GRUB2弄到msdos格式的bios引导硬盘的MBR分区的黑群晖自启动硬盘才是更麻烦费事的。
继续执行我写的脚本。这个脚本需要两个参数,第一个是硬盘的设备名,第二个是bootloader的映像文件名。例如,从当前目录执行时:
./disk_setboot.sh /dev/sdb ./boot602-8451.img
执行后,黑群晖的自启硬盘就生成了。你可以shutdown黑群晖,拔掉USB或CD的启动盘。试试让硬盘自启吧。祝你好运。
注意事项:
1, 安装硬盘自启会修改硬盘分区,一般情况下是不会破坏硬盘数据的。但还是会一定的有风险,论坛和发布文章的人不承担任何责任,后果自负。请无必事先备份好硬盘数据,以防万一。
2,请确认你安装的黑群晖是使用主引导记录MBR和MS-DOS标准分区表的老主板,而不是使用UEFI分区格式的GPT分区表的新主板。
3,安装硬盘自启前请严格检查大小版本号是否与本映像一致并仔细阅读本文,切勿盲目安装。
4,如果版本号不同,请使用你当前版本的zImage文件替换本映像中的zImage文件,对映像版本进行修正。如果曾经用算号器洗白,请修正本映像中的sn系列号和mac地址,以保证洗白的硬盘自启。
这次我为大家提供了两个包。一个是硬盘自启+USB启动盘+系统救援盘的映像包。另一个是iso直接启动安装包。文件名分别为:boot_ds3615xs_v613_15152.rar 和 boot_ds3615xs_v613_15152.iso。
硬盘自启6.1.3-15152版映像包提取地址是: https://pan.baidu.com/s/1qXZUAIg
提取码为:9ixi
iso直接启动安装包提取地址是:https://pan.baidu.com/s/1hsd8F9U
提取码为:jh4k
如果有什么不懂的再问。 |
免费评分
-
查看全部评分
|