本帖最后由 妄语 于 2020-6-3 09:25 编辑
这是一个针对引导二合一群晖系统的动态扩容脚本,操作简单,直接【【动态扩容】】,无需动用其他PE、DiskGenius等辅助工具、甚至无需重启,只需要在群晖系统里新建一个脚本运行一遍即可完成扩容,而且不仅限于扩容,大小随意故简称如意金箍棒。 目前只在自己的蜗牛星际(C双intel211 13SATA)机器上测试通过,理论上具有通用性.....请自行斟酌测试。
系统镜像分区情况
因为各种折腾所以有了这个脚本,腾了几G出来放PE、装windows系统……,后来为了安装“Virtual Machine Manager”套件后装软路由,谁知道坑爹套件新建虚拟机的硬盘至少要大于10G,一番折腾甚至把交换分区也给删了整够12G给它后又提示可用空间至少要超过6G,马蛋,无语.....最后只好加了块硬盘完事。 另外有人需要的话,有空了再把修改过的启动分区备份(支持UEFI+Bios双启动)或者整个镜像(支持UEFI+Bios双启动,带扩容脚本)放出来下载。 本教程的PDF版本、及txt版脚本下载,内容和本贴一样,需要的自取: 脚本txt(20200602增加数据分区备份功能): 先请主角“如意金箍棒”: #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 fi
注意事项: 1.命令涉及重新分区,请拔掉其他数据盘并备份二合一盘上的重要数据!!! 2.首先一定要确认你的二合一盘的设备名称,根据实际情况修改"/dev/sdb"(名称一般为/dev/sda,/dev/sdb,/dev/sdc.....依此类推,对应存储空间管理员系统概况中图示的插槽顺序,即第一个格子为sda.....)
存储空间系统概况
3.仅扩容存储空间可直接运行。调整后启动分区及存储空间大小均变化的必须先在【主菜单】->【储空间管理员】->【存储空间】中先删除二合一盘上的存储空间后运行此脚本,等待脚本运行结束后再添加回存储空间! 4.如果不是新系统,有可能二合一系统上的数据区的raid设备挂载不是脚本默认的/dev/md2,导致脚本运行失败。另外安装了其他套件或者挂载了共享文件等可能会导致脚本运行失败。 5.GPT分区格式的硬盘主分区数量不能超过4个(不含空闲区域,默认脚本只能处理4个分区的情况),另外系统的分区排列顺序(是建立分区的先后顺序,不是位置前后)如果和我的分区顺序不同(3号为用户数据分区,4号为启动分区),或者你无法确定顺序是否相同,那么即使只是扩容也不应该跳过第二步的“删除存储空间”(这一点为20200602补充,同时新增加了备份数据分区的代码,可以做到无损恢复数据分区)。
下面正式开始教程: 1.导入脚本 到【控制面板】->【任务计划】->【新增】->【计划的任务】->【用户定义的脚本】创建一个计划任务,在创建任务窗口【常规】项中填入脚本名称“reParted.sh”,取消勾选【已启动】,到【任务设置】项中把前面的脚本代码全部复制粘贴上去。
导入脚本
然后根据注意事项中的方法确认你的二合一盘的设备名称,根据实际情况修改脚本第一句中的"/dev/sdb"后【确定】保存。
修改设备名称
会使用telnet 或者ssh连接的也可以自己连接进去用“parted -l”, “parted /dev/sdb print”等命令确认,顺便也可用“cat /proc/mdstat”命令确认数据区的raid设备挂载名称(这些命令可能需要root权限)。脚本运行前分区情况:
脚本运行前分区情况
2.脚本设置及删除存储空间 如果仅仅是扩容(脚本中默认把启动分区调整到133MB占满数据区前的空闲区域,然后扩容数据分区至最大),不进行其他分区大小调整,可以直接跳过这一步进入下一步:3.运行脚本。但如果系统的分区排列顺序(是建立分区的先后顺序,不是位置前后)和我的分区顺序不同(参考上一张脚本运行前分区情况图,3号为用户数据分区,4号为启动分区),或者你无法确定顺序是否相同,则不应跳过这一步。 如果要自定义启动分区或数据分区大小,安全起见,先到【主菜单】->【存储空间管理员】->【存储空间】->【删除】中删除原二合一盘上的数据存储空间,小心别删错了。删除存储空间会清除原有数据,删除前请先做好重要数据的备份工作。
删除存储空间
自定义启动及数据分区大小: 回到【控制面板】->【任务计划】页面选中刚才新建的脚本“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
自定义分区大小
3.运行脚本 回到【控制面板】->【任务计划】页面选中脚本“reParted.sh”(鼠标左键点一下任务名称,该任务变蓝表示选中),然后点击【运行】->【是】。
运行脚本
脚本运行需要一定的时间,可用通过【控制面板】->【任务计划】页面选中脚本“reParted.sh”(鼠标左键点一下任务名称,该任务变蓝表示选中),然后点击【动作】->【查看结果】了解脚本是否已经正常执行。
查看运行结果
脚本运行正在运行时,【当前状态】会显示“运行中“,正常运行结束【当前状态】会显示”正常“,否则会显示”中断“(有错误),并显示【结束时间】。
脚本运行结果
4.扩容及添加存储空间(搞定收工) 如果仅仅是扩容,脚本运行正常结束后直接到【主菜单】->【存储空间管理员】->【RAID Group】->【管理】->【扩充】即完成。 如果第二步“脚本设置及删除存储空间“中删除过存储空间,那么还需要添加回来:【主菜单】->【存储空间管理员】->【存储空间】->【新增】->【确定】。 脚本运行后各分区情况对比:
脚本运行后分区情况
|