找回密码
 立即注册

QQ登录

只需一步,快速开始

铁威马网络网络存储

[教程分享] 【老骥伏枥-原创】关于黑群晖5.x版硬盘自启动的探讨

[复制链接]
本帖最后由 f541883216 于 2017-1-17 01:25 编辑

安装过黑群晖系统的网友们都有这样的经验,先要做一个USB或CD的启动盘。然后就可以用群晖的SynologyAssistant工具从另一台电脑把群晖系统安装起来了。
安装后,每次重启电脑,都需要这个启动盘。这是因为群晖系统主启动程序没有在硬盘中,而只有系统挂载的根目录系统在硬盘中。所以硬盘是不能用来启动的。

对与一个已经安装完成的运行系统来说,需要一个额外的启动盘,实在是有点美中不足。毕竟这是因为黑了群晖系统,转而安装到PC的x86平台上才会产生这个问题。有没有办法让黑群晖的运行系统硬盘自启动呢?首先需要研究一下需求。群晖系统的重安装会,重新创建新的文件卷,都会重写硬盘的分区,并抹去所有的数据。如果我们把bootloader装到硬盘中,当然也会被抹去。因为群晖的原设计就是用硬盘存储数据的。运行群晖自己的平台,根本就不需要什么启动盘。黑群晖才有这个需求。并与群晖的原设计有所冲突。既然黑群晖有这个需求,我们就要想办法解决。如果我们能设计一个非常方便的方法,一键重装bootloader到黑群晖的硬盘,这个问题不就迎刃而解了吗。

能不能把bootloader到黑群晖的硬盘呢?这需要看看黑群晖的硬盘的分区结构。让我们用GParted工具分析一下,可以发现有一个可以利用的100多兆的空间。截图如下:

黑群晖的bootloader很小,只有15兆左右。把它安装在这个空间,问题就解决了。关键是如何才能方便地完成一键重装bootloader到黑群晖的硬盘。

老骥伏枥重新打包了一个用于黑群晖硬盘自启动的boot.img,并专门为它写了一个shell script用于把bootloader安装到黑群晖的硬盘。并做了一个Synology_Harddisk_Boot.zip的压缩包,网友们可以从百度云下载使用。
地址是:http://pan.baidu.com/s/1slctvVB
文件提取码为:
游客,如果您要查看本帖隐藏内容请回复

俗话说“授人以鱼不如授人以渔”;不知到是否有人对x86系统平台上BIOS的bootloader启动引导过程有兴趣,作为“抛砖引玉”我在这里以我打包的boot.img予以简单的介绍:在这个img包中,可以看到有6个文件:
ldlinux.sys
ldlinux.c32
menu.c32
libutil.c32
syslinux.cfg
zImage
但是还有一段代码是看不到的,它是MBR和引导代码,它的扇区位置是固定的。MBR是硬盘的第0个盘片的第0个面的第0磁道的0扇区。这就是为什么我要打包一个img文件而不是把文件发给大家的原因。我三十年前就出版过关于PC机启动引导的书,详细介绍过这方面的技术细节。三十年过去了BIOS引导没有什么变化和更新。黑群晖5.x版的引导技术相当陈旧。6.x版好像开始用grub了,有心的网友可以根据我介绍的思路,制作6.x版的boot.img。

黑群晖的x86系统平台加电后,主板CMOS芯片上的BIOS(Basic Input/Outpu System)程序检测与主板相连的硬件:CPU、内存、光驱、硬盘、软驱键盘等,然后加载系统卷中的引导扇区的MBR引导代码,把它加载到x86实模式的7C00地址并执行这段代码。如果在系统目录下有ldlinux.sys文件且有效,装载并把控制权交给它,如果是64位操作系统,ldlinux.sys将CPU切换到64位模式。之后读取并分析syslinux.cfg文件,根据设定加载并初始化linux内核。zImage是群晖定制的linux内核,在syslinux.cfg你可以看到:
MENU LABEL XPEnology DSM 5.1-5022
KERNEL /zImage
APPEND root=/dev/md0 ihd_num=0 netif_num=4 syno_hw_version=DS3615xs sn=B3J4N01003 vid=0x0EA0 pid=0x2168 loglevel=0 vga=0x305
这些斜体字才是破解群晖的重要参数。引导并不是关键部分。我个人不喜欢黑别家的系统,只愿意做自主知识产权得原创作品,所以也不能解释这些斜体字的参数意义。以下介绍我写的创建自启硬盘脚本,这是自主知识产权得原创作品。

用这个压缩包可以方便地制作一个黑群晖硬盘自启动。具体步骤如下:
1. 下载Synology_Harddisk_Boot.zip压缩包
2. 解压后有两文件:boot.img 和 setboot.sh
3. 在黑群晖的硬盘卷上创建一个share folder。例如:可以起名为hard_disk_boot
4. 把这两个文件上载到这个share folder。截图如下:

5. 从控制台或用ssh登陆到黑群晖。我是用PuTTY通过ssh连到黑群晖的。注意:登陆时一定要用root而不是用admin。密码是你初次安装黑群晖时设定的密码。admin和root的密码其实是一样的。截图如下:

6. 登陆后,切换到share folder。并设置文件的权限。
  1. cd /volume?/your_share_folder_name
  2. chown root:root boot.img
  3. chown root:root setboot.sh
  4. chmod 666 boot.img
  5. chmod 755 setboot.sh
复制代码


截图如下:

7. 执行 fdisk –l 查看一下你的硬盘分区情况和名称。截图如下:

从截图中可以看到,我的黑群晖系统现在挂载了两硬盘,每个8GB。一个是/dev/sdc,另一个是/dev/sdd。其中/dev/sdc1和/dev/sdc2是两个linux raid分区,这是黑群晖的根目录系统。/dev/sdc3是扩展分区,/dev/sdc5是linux raid的扩展逻辑分区,用做数据卷。在x86系统平台上,每个硬盘只容许有4个基本分区。sdc1,sdc2,sdc3用了三,幸好还为我们留了最后一个sdc4,让我们可以用来做黑群晖硬盘自启动。我想这可能是群晖系统设计时留下准备将来有什么用途的吧。不管怎样,我们现在可以用来做硬盘自启。另一个硬盘/dev/sdd的结构也是一样的。不管系统有多少硬盘,自启的bootloader只要安装到其中一个硬盘即可。一般我会选择安装到第一个硬盘。

8. 执行我写的shell script创建自启硬盘。这个脚本需要两个参数,第一个是硬盘的设备名,第二个是bootloader的映像文件名。例如,从当前目录执行时:
  1. ./setboot.sh  /dev/sdc  ./boot.img
复制代码


截图如下:

执行后,黑群晖的自启硬盘就生成了。你可以shutdown黑群晖,拔掉USB或CD的启动盘。试试让硬盘自启吧。祝你好运。

如果你想查看一下安装的情况,可以执行 fdisk –l 来查看。截图如下:


可以看到在/dev/sdc4,我们安装来自启的bootloader。

注意事项:
1, 安装硬盘自启会修改硬盘分区,一般情况下是不会破坏硬盘数据的。但还是会一定的有风险,论坛和发布文章的人不承担任何责任,后果自负。请无必事先备份好硬盘数据,以防万一。
2, 这是黑群晖5.1-5022版硬盘自启动,切勿用于6.x版。如果你想为6.x版做硬盘自启,请参见本文前面提到的抛砖引玉介绍。

老骥伏枥,祝大家新年快乐。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1云币 +10 金条 +10 碎银 +10 收起 理由
灰色头像。 + 10 + 10 + 10 很给力!

查看全部评分

使用道具 举报 回复

【老骥伏枥-原创】黑群晖5.2-5967版硬盘自启动并带Win7PE的映像

本帖最后由 f541883216 于 2017-1-17 03:23 编辑

发表了关于黑群晖5.x版硬盘自启动的探讨之后,很多坛友感觉对于老主板没有USB启动的主板有救了 ,你的主板只有4个SATA接口都可以安装一样大的硬盘,每个硬盘都可以利用起来了,再也不用小硬盘浪费一个接口了。但由于大多数坛友习惯用Windows,而不习惯Linux。所以希望我能为硬盘自启动映像加上Win7PE工具盘。因为群晖的硬盘的分区结构在做对齐时留下非常有限的127-133兆左右的可利用空间。所以根据坛友jiangjcdqjcy的要求,和他提供的5.2-5967boot映像。非常谢谢他的协助。我为大家打包了一个专门用于黑群晖5.2最终版的带Win7PE工具的硬盘自启映像。


原理我在上一篇文章中已经详细介绍过了。这里就不再赘述了。应为要打包Win7PE工具盘,所以这个映像比较大。
地址是:http://pan.baidu.com/s/1pLyIJHp
文件提取码为:
游客,如果您要查看本帖隐藏内容请回复



这个压缩包安装的方法和步骤与我上一篇文章介绍的相同。我个人比较喜欢用Linux的脚本来安装,所以我写了脚本来方便大家安装。但也有坛友喜欢用Win7PE工具盘来安装。请参考jiangjcdqjcy的教程分享 ---  黑群晖NAS服务器硬盘自启动安装图片 http://www.nasyun.com/thread-28661-1-2.html


群晖5.2-5967最终版的硬盘设备名都多加了一个字符,例如:  原来的/dev/sde变成了 /dev/sdae;原来的/dev/sdf变成了 /dev/sdaf;不知道群晖为什么要这样做?可能是想给不太了解Linux的坛友添点麻烦吧。请看截图:

执行我写的shell script创建自启硬盘时。这个脚本需要两个参数,第一个是硬盘的设备名,第二个是bootloader的映像文件名。例如,要让设备/dev/sdaf变成自启动硬盘,从当前目录执行时:

  1. ./setboot.sh  /dev/sdaf  ./boot52-5967.img
复制代码

如果你想查看一下安装的情况,可以执行 fdisk –l 来查看。截图如下:

黑群晖启动后,你有10秒钟的时间选择项目,截图如下:

可以看到Win7PE工具盘了。希望大家喜欢我的作品。谢谢!

注意事项:
1, 安装硬盘自启会修改硬盘分区,一般情况下是不会破坏硬盘数据的。但还是会一定的有风险,论坛和发布文章的人不承担任何责任,后果自负。请无必事先备份好硬盘数据,以防万一。
2,请确认你安装的黑群晖是使用主引导记录MBR和MS-DOS标准分区表的老主板,而不是使用UEFI分区格式的GPT分区表的新主板。
3,安装硬盘自启前请严格检查大小版本号是否与本映像一致,切勿盲目安装。以免造成不能硬盘自启。
4,如果版本号不同,请使用你当前版本的zImage文件替换本映像中的zImage文件,对映像版本进行修正。如果曾经用算号器洗白,请修正本映像中syslinux.cfg文件中的sn系列号和mac地址,以保证洗白的硬盘自启。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复 支持 反对
经坛有友实际测试,这种方法只能用2t以下的硬盘,2t以上的硬盘不成功,2t以上的硬盘分区是用的GPT分区,不能设置活动分区,2t以下的传可以设置活动分区,看来还需要搞一个6.02的带uefi启动的winpe x64位的win8.1pe和win10的pe映象。
使用道具 举报 回复 支持 反对
hgjhgjghjghjghjgh
使用道具 举报 回复 支持 反对
谢谢楼主分享
使用道具 举报 回复 支持 反对
一般人很难弄明白啊
使用道具 举报 回复 支持 反对
装的是这个http://www.nasyun.com/thread-24296-1-1.html
不行。 开机说 boot error
使用道具 举报 回复 支持 反对
Ken_Diskstation> fdisk -l

Disk /dev/sda: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sda1               1         311     2490240  fd Linux raid autodetect
Partition 1 does not end on cylinder boundary
/dev/sda2             311         572     2097152  fd Linux raid autodetect
Partition 2 does not end on cylinder boundary
/dev/sda3             588       91201   727848912   f Win95 Ext'd (LBA)
/dev/sda4   *         572         588      130048   e Win95 FAT16 (LBA)
Partition 4 does not end on cylinder boundary
/dev/sda5             589       91189   727744480  fd Linux raid autodetect

Partition table entries are not in disk order

Disk /dev/synoboot: 7747 MB, 7747397632 bytes
4 heads, 32 sectors/track, 118215 cylinders
Units = cylinders of 128 * 512 = 65536 bytes

        Device Boot      Start         End      Blocks  Id System
/dev/synoboot1   *           1         252       16096+  e Win95 FAT16 (LBA)
Ken_Diskstation> reboot

Broadcast message from root@Ken_Diskstation
        (/dev/pts/1) at 22:32 ...
使用道具 举报 回复 支持 反对
新人路過,學習一下
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 搜索 官方QQ群