完善黑群晖理顺盘序、隐藏引导盘的设置
因为才入手黑裙才几个月,直到昨天遇到硬盘扇区出问题的情况,今天回到家晚上吃完晚饭便开始折腾,一个劲的Google群晖硬盘损坏、迁移、换盘的一些教程心得,偶然间发现我的黑裙磁盘盘序这些挺乱的,才有了这一篇文章。
因为是基于 DS3617XS 的引导文件,所以这篇文章只针对该型号的黑裙来操作;操作流程我就不多叙述了,具体参考本博文后面的相关参考链接,如果实在是懒得折腾的,且又是同样机型的引导文件可以套用我改好的grub.cfg文件。
因为怕数据出现问题或者出现重装恢复数据的麻烦,另外:PE系统里修改也需要相关的加载镜像文件的工具,我没有尝试过也不知道有哪些坑。
所以我便使用了SSH客户端的vi工具来在线编辑grub.cfg文件,其实用法也很简单,熟悉了操作完全是无脑的,在折腾之前建议备份数据,备份好我们修改的grub.cfg文件。如果有问题了只要能开机,就不怕数据丢失,大不了就是改回来呗!
黑群晖修改后的grub.cfg文件
if serial --port=0x3F8 --speed=115200;then
set has_serial=true
terminal_input --append serial
terminal_output --append serial
else
clear
fi
terminal_input --append console
terminal_output --append console
if [ x"${grub_platform}" = xefi ]; then
insmod efi_gop
insmod efi_uga
else
insmod vbe
fi
set extra_initrd="extra.lzma"
set info="info.txt"
set vid=0x058f
set pid=0x6387
set sn=A8ODN02468
set mac1=0011322CA603
set rootdev=/dev/md0
set netif_num=1
#set extra_args_3617='earlycon=uart8250,io,0x3f8,115200n8 earlyprintk loglevel=15'
set extra_args_3617='SasIdxMap=0 DiskIdxMap=0F00 SataPortMap=4 sata_remap=05>10:10>05'
set common_args_3617='syno_hdd_powerup_seq=0 HddHotplug=0 syno_hw_version=DS3617xs vender_format_version=2 console=ttyS0,115200n8 withefi elevator=elevator quiet syno_port_thaw=1'
set sata_args=' SasIdxMap=0 DiskIdxMap=0F00 SataPortMap=4 sata_remap=05>10:10>05'
set default='0'
set timeout='1'
set fallback='1'
if [ -s $prefix/grubenv ]; then
load_env
if [ -n "$saved_entry" ]; then
set default="${saved_entry}"
fi
fi
VERSION="with Jun's Mod v1.03b"
search --file -s /bzImage
function savedefault {
if [ -s $prefix/grubenv ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function do_option {
if [ $# -lt 2 ]; then
eval "set value=\"\$$1\""
echo "current $1: $value"; return;
fi
set key=$1
shift
set $key="$*"
if [ -s $prefix/grubenv ]; then
save_env $key
fi
}
function vid { do_option vid $@; }
function pid { do_option pid $@; }
function sn { do_option sn $@; }
function mac1 { do_option mac1 $@; }
function mac2 { do_option mac2 $@; }
function mac3 { do_option mac3 $@; }
function mac4 { do_option mac4 $@; }
function rootdev { do_option rootdev $@; }
function append { do_option extra_args_3617 $@; }
function vidpid {
if [ $# -lt 2 ]; then
echo "usage: vidpid 0xVVVV 0xPPPP"; return;
fi
set usb_args="vid=$1 pid=$2"
if [ -s $prefix/grubenv ]; then
save_env usb_args
fi
}
function showtips {
if [ -n "$has_serial" ]; then
terminal_output --remove serial
fi
echo "Screen will stop updating shortly, please open http://find.synology.com to continue."
echo
echo
if [ -n "$has_serial" ]; then
terminal_output --append serial
fi
}
function loadinitrd {
if [ -s $img/$info ]; then
if [ -n "$has_serial" ]; then
terminal_output --remove serial
fi
cat $img/$info
if [ -n "$has_serial" ]; then
terminal_output --append serial
fi
fi
# if [ -s $img/$extra_initrd ]; then
# initrd $img/rd.gz $img/$extra_initrd
# else
# initrd $img/rd.gz
# fi
}
function common_add_option {
eval "set value=\"\$$1\""
if [ -z $value ]; then return 1; fi
set common_args="$common_args $1=$value"
}
function common_add_option_ex {
eval "set value=\"\$$1\""
if [ -z $value ]; then return 1; fi
set common_args="$common_args $2=$value"
}
function loadlinux {
set model=$1
set bootdev=$2
shift 2
if [ -n $vid -a -n $pid ]; then
set usb_args="vid=$vid pid=$pid"
fi
eval "set common_args=\"\$common_args_$model\""
eval "set extra_args=\"\$extra_args_$model\""
eval "set bootdev_args=\"\$${bootdev}_args\""
common_add_option_ex rootdev root
common_add_option sn
if common_add_option mac1; then set netif_num=1; fi
if common_add_option mac2; then set netif_num=2; fi
if common_add_option mac3; then set netif_num=3; fi
if common_add_option mac4; then set netif_num=4; fi
common_add_option netif_num
if [ -z $zImage ]; then
set zImage=bzImage
fi
linux $img/$zImage $common_args $bootdev_args $extra_args $@
}
menuentry "DS3617xs 6.2 Baremetal $VERSION" --class os {
set img=
savedefault
loadlinux 3617 usb
loadinitrd
showtips
}
menuentry "DS3617xs 6.2 Baremetal $VERSION Reinstall" --class os {
set img=
loadlinux 3617 usb mfg
loadinitrd
showtips
}
#menuentry "DS3617xs 6.2 Baremetal AMD $VERSION" --class os {
# set img=
# set zImage=bzImage
# savedefault
# loadlinux 3617 usb
# loadinitrd
# showtips
#}
menuentry "DS3617xs 6.2 VMWare/ESXI $VERSION" --class os {
set img=
savedefault
loadlinux 3617 sata
loadinitrd
showtips
}
这是我改好的内容,在折腾之前建议多比对下相关的一些参数,比如:set extra_args_3617=
set sata_args=
SataPortMap=
DiskIdxMap=
Sata_remap=
等。
主要参考以下文章:
参考:黑群辉改sata控制器识别接口数、硬盘盘序的经验总结
参考:群晖安装成功后修改mac以及sn(SSH在线修改DS918+的SN/MAC)
再次,感谢大佬们的无私奉献!
评论已关闭