本站已运行

蓝光高清网

搜索

[教程分享] 2019/4/24更新 支持一键修复 3455专版,3617-6.17,918+6.21二合一引导

Synology 发表于 2021-3-1 11:21:04 | 显示全部楼层 |阅读模式
这是一个针对引导二合一群晖系统的动态扩容脚本,操作简单,直接【【动态扩容】】,无需动用其他PEDiskGenius等辅助工具、甚至无需重启,只需要在群晖系统里新建一个脚本运行一遍即可完成扩容,而且不仅限于扩容,大小随意故简称如意金箍棒
目前只在自己的蜗牛星际(C双intel211 13SATA)机器上测试通过,理论上具有通用性.....请自行斟酌测试。

image.png

因为各种折腾所以有了这个脚本,腾了几G出来放PE、装windows系统……,后来为了安装“Virtual Machine Manager”套件后装软路由,谁知道坑爹套件新建虚拟机的硬盘至少要大于10G,一番折腾甚至把交换分区也给删了整够12G给它后又提示可用空间至少要超过6G,马蛋,无语.....最后只好加了块硬盘完事。
另外有人需要的话,有空了再把修改过的启动分区备份(支持UEFI+Bios双启动)或者整个镜像(支持UEFI+Bios双启动,带扩容脚本)放出来下载。
本教程的PDF版本、及txt版脚本下载,内容和本贴一样,需要的自取:
教程的PDF版本:

群晖如意金箍棒.pdf ( 1.95 MB )


reParted.zip ( 1.12 KB )


reParted备份数据分区20200602.zip ( 1.4 KB )


先请主角“如意金箍棒”:
#reParted.sh
#注意!!!
#1.命令涉及重新分区,请拔掉其他数据盘并备份二合一盘上的重要数据!!!
#2.首先一定要确认你的二合一盘的设备名称,根据实际情况修改"/dev/sdb"
#  (名称一般为/dev/sda,/dev/sdb,/dev/sdc依此类推,对应存储空间管理员
#  系统概况中图示的插槽顺序,即第一个格子为sda...)
#3.仅扩容存储空间可直接运行。调整后启动分区及存储空间大小均变化的必
#  须先在主菜单->储空间管理员->存储空间中先删除二合一盘上的存储空间
#  后运行此脚本,等待脚本运行结束后再添加回存储空间!
bootdev="/dev/sdb"
#查找启动分区
mkdir /mnt/boot
mount ${bootdev}3 /mnt/boot
if test -d /mnt/boot/boot -o -f /mnt/boot/grldr -o -d /mnt/boot/efi; then bootpartition=3;fi
umount ${bootdev}3
mount ${bootdev}4 /mnt/boot
if test -d /mnt/boot/boot -o -f /mnt/boot/grldr -o -d /mnt/boot/efi; then bootpartition=4;fi
umount ${bootdev}4
rmdir /mnt/boot
#判断是否找到启动分区,未找到则放弃执行
if test -z ${bootpartition}; then echo "未找到启动分区,放弃分区调整!";else

#备份启动分区
if test -f /root/bootimage.gz; then echo "发现备份文件,放弃备份。";else dd if=${bootdev}${bootpartition} | gzip > /root/bootimage.gz;fi
#将二合一盘上的用户数据区从raid序列中停止
mdadm --remove /dev/md2
mdadm -S /dev/md2
#删除启动分区及用户数据区
parted ${bootdev} rm 3
parted ${bootdev} rm 4
#重建分区并格式化启动分区。启动分区默认结束于4832MB
#自己根据需要调整启动分区及数据区大小(后方的分区结束容量参数-前方的分区开始容量参数)
parted -s ${bootdev} mkpart primary btrfs 4832MB 100%
parted -s ${bootdev} mkpart primary 4699MB 4832MB
mkfs.vfat ${bootdev}4
parted ${bootdev} set 4 boot on
parted ${bootdev} set 4 esp on
parted ${bootdev} set 3 raid on
#把用户数据区重新创建为raid序列
echo y|mdadm -C --metadata=1.2 --force /dev/md2 -l1 -n1 ${bootdev}3
#还原数据到启动分区
gzip -dc /root/bootimage.gz | dd of=${bootdev}4

#删除启动分区备份,如果启动分区容量不大建议留着不用删除
rm -f /root/bootimage.gz
echo done!


fi

注意事项:
1.命令涉及重新分区,请拔掉其他数据盘并备份二合一盘上的重要数据!!!
2.首先一定要确认你的二合一盘的设备名称,根据实际情况修改"/dev/sdb"(名称一般为/dev/sda,/dev/sdb,/dev/sdc.....依此类推,对应存储空间管理员系统概况中图示的插槽顺序,即第一个格子为sda.....
image.png

3.仅扩容存储空间可直接运行。调整后启动分区及存储空间大小均变化的必须先在【主菜单】->【储空间管理员】->【存储空间】中先删除二合一盘上的存储空间后运行此脚本,等待脚本运行结束后再添加回存储空间!
4.如果不是新系统,有可能二合一系统上的数据区的raid设备挂载不是脚本默认的/dev/md2,导致脚本运行失败。另外安装了其他套件或者挂载了共享文件等可能会导致脚本运行失败。
5.GPT分区格式的硬盘主分区数量不能超过4个(不含空闲区域,默认脚本只能处理4个分区的情况),另外系统的分区排列顺序(是建立分区的先后顺序,不是位置前后)如果和我的分区顺序不同(3号为用户数据分区,4号为启动分区),或者你无法确定顺序是否相同,那么即使只是扩容也不应该跳过第二步的“删除存储空间”(这一点为20200602补充,同时新增加了备份数据分区的代码,可以做到无损恢复数据分区)。

下面正式开始教程:
1.导入脚本
到【控制面板】->【任务计划】->【新增】->【计划的任务】->【用户定义的脚本】创建一个计划任务,在创建任务窗口【常规】项中填入脚本名称reParted.sh,取消勾选【已启动】,到【任务设置】项中把前面的脚本代码全部复制粘贴上去。
image.png

然后根据注意事项中的方法确认你的二合一盘的设备名称,根据实际情况修改脚本第一句中的"/dev/sdb"后【确定】保存。
image.png

会使用telnet 或者ssh连接的也可以自己连接进去用“parted -l, parted /dev/sdb print”等命令确认,顺便也可用“cat /proc/mdstat命令确认数据区的raid设备挂载名称(这些命令可能需要root权限)。脚本运行前分区情况:
image.png

2.脚本设置及删除存储空间
如果仅仅是扩容(脚本中默认把启动分区调整到133MB占满数据区前的空闲区域,然后扩容数据分区至最大),不进行其他分区大小调整,可以直接跳过这一步进入下一步:3.运行脚本。但如果系统的分区排列顺序(是建立分区的先后顺序,不是位置前后)和我的分区顺序不同(参考上一张脚本运行前分区情况图,3号为用户数据分区,4号为启动分区,或者你无法确定顺序是否相同,则不应跳过这一步。
如果要自定义启动分区或数据分区大小,安全起见,先到【主菜单】->【存储空间管理员】->【存储空间】->【删除】中删除原二合一盘上的数据存储空间,小心别删错了。删除存储空间会清除原有数据,删除前请先做好重要数据的备份工作。
image.png

自定义启动及数据分区大小:
回到【控制面板】->【任务计划】页面选中刚才新建的脚本reParted.sh(鼠标左键点一下任务名称,该任务变蓝表示选中),然后点击【编辑】->【任务设置】,按需要修改脚本中的分区命令的最后两个参数后【确定】保存。参数意义解释如下:
#先建立数据分区3,从4832MB开始至100%
parted -s ${bootdev} mkpart primary btrfs 4832MB 100%
#再建立启动分区4,从4699MB开始至4832MB结束,大小为:4832-4699=133MB。
parted -s ${bootdev} mkpart primary 4699MB 4832MB
image.png

3.运行脚本
回到【控制面板】->【任务计划】页面选中脚本reParted.sh(鼠标左键点一下任务名称,该任务变蓝表示选中),然后点击【运行】->【是】。
image.png

脚本运行需要一定的时间,可用通过【控制面板】->【任务计划】页面选中脚本“reParted.sh”(鼠标左键点一下任务名称,该任务变蓝表示选中),然后点击【动作】->【查看结果】了解脚本是否已经正常执行。
image.png

脚本运行正在运行时,【当前状态】会显示“运行中“,正常运行结束【当前状态】会显示正常,否则会显示中断(有错误),并显示【结束时间】。

回复

使用道具 举报

全部回复0 显示全部楼层

发表回复

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

本版积分规则

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