群晖换硬盘成功
- xiaotianhu之前发了贴问了一下 说是每个盘都有系统。。。感觉很神奇两个盘都是Basic模式
先把所有共享目录,移动到disk2上,此时disk1的已用空间还是几十G
找到一个脚本https://gist.github.com/nobodypb/fc3e70b535bcd95b5de7659d6fbda434
可以把全部appstore的套件移动到disk2具体用法:
ssh进群辉,新建个文件到任意目录,把这段代码复制进去
然后 chmod 777 文件名,然后执行
一路按y 就会把/volume1/@appstore下面的文件备份到/volume2去,等换回来硬盘后软链回/volume1就行了
然后把@docker目录手动mv到disk2上 就差不多了
关机,换上新盘,果然能开机了 牛逼
在管理员->raid group里添加一个新的raid group,搞了个ext4的Basic分区 美滋滋
把之前移动到/volume2 的目录软链一下到volume1就行了
cd /volume1
sudo ln -s /volume2/@docker ./
sudo ln -s /volume2/@appstore ./
sudo ln -s /volume2/docker/ ./
sudo ln -s /volume2/@download ./
sudo rm -rf \@database/ && sudo ln -s /volume2/@database ./
之前的app docker什么的就都回来了. - 故都的秋你说会不会楼主得意忘形的玩儿现了? iOS fly ~
- maxwellss天哪,换个盘这么复杂。。。。你咋不上网问问群晖的在线客服啊。买群晖软件的钱里面包含有咨询费。
- xiaotianhu还行吧,没多复杂啊。自己研究才有乐趣
- maxwellss
- lifanxi任何硬盘在群晖中用任何模式处理,都会被至少分三个区,第一个系统分区,第二个交换分区,第三个数据分区。RAID、SHR这些都是在第三个分区上做文章。前两个分区都会在你机器上的N块硬盘上同时存在,各自组成RAID 1,这就是所谓“每块盘上都有系统”。
你那个套件搬家脚本的本质是停服、移动、软链、启服。其实对你的场景意义不大,因为你换了硬盘以后软链也就没有了,所以你的系统启来以后还是什么套件都没有。当然要恢复也是简单的,把移动过的套件以及你自己移动过的文件夹都移回原来的地方就可以了。 - GleeU最大的麻烦是如果提示损毁了 就没办法移动了 特别蛋疼
- 神州大地我先马克 iOS fly ~
- ehgui
- deyu260换个硬盘这么复杂了 还需要第三方脚本 那还买啥群晖啊 不如自己搞unraid
- william24那么请教一下,我是双盘位黑裙,一个1T一个4T的硬盘,都是basic模式,系统套件都装在1T盘上,现在准备了一个4T的要换下1T,和楼主的情况基本一致,有没有更简单的做法呢?楼主那个脚本玩不太懂。
- william24
- deyu260没试过 我是做的raid1那种模式 我连freenas的u盘都插2个做了个raid1 来自官方的回答https://www.synology.com/zh-cn/knowledgebase/DSM/tutorial/Storage/Can_I_use_larger_hard_drive_s_to_expand_the_storage_capacity_on_Synology_Product_for_DSM_2_2_and_onward
当然也可以用lz的那种方法 - xiaotianhu复制代码
- #!/bin/bash
- SOURCE=/volume1
- DEST=/volume2
- APPDIR=\@appstore
- ASK=true
- while getopts ":y" opt; do
- case $opt in
- y)
- ASK=false
- ;;
- \?)
- echo "Invalid option: -$OPTARG" >&2
- exit 1
- ;;
- esac
- done
- echo "This will move packages from $SOURCE to $DEST"
- echo ""
- if [ ! -d $DEST/$APPDIR ]; then
- mkdir $DEST/$APPDIR
- chmod 777 $DEST/$APPDIR
- echo "New app directory created"
- fi
- echo "Searching for packages on $SOURCE..."
- for d in /var/packages/*
- do
- [ -d "$d" ] || continue
- app=$(basename $d)
- symlink=$d/target
- if [ ! -e "$symlink" ]; then
- echo "$app has no symlink"
- continue
- fi
- if [ ! -e "$SOURCE/$APPDIR/$app" ]; then
- echo "$app is not in source directory"
- continue
- fi
- if [ ! "$(readlink $symlink)" -ef "$SOURCE/$APPDIR/$app" ]; then
- echo "$app: Symlink doesn't point to source directory"
- continue
- fi
- echo "Found $app"
- file_warnings=$(find $d -type f -exec grep -l "$SOURCE" {} \;)
- if [ ! -z $file_warnings ]; then
- echo "Be careful!"
- echo "The following files contain '$SOURCE':"
- echo "$file_warnings"
- fi
- if $ASK; then
- read -s -p "`echo
- \t'`Move $app? (y/n)`echo
- \n \b'`" -n 1 -r
- [[ $REPLY =~ ^[Yy]$ ]] || continue
- echo ""
- fi
- echo "`echo
- \t'`Moving $app..."
- synopkgctl stop $app
- cp -rp $SOURCE/$APPDIR/$app $DEST/$APPDIR/
- rm -f $symlink
- ln -s $DEST/$APPDIR/$app $symlink
- mv $SOURCE/$APPDIR/$app $SOURCE/$APPDIR/__$app
- synopkgctl start $app
- echo "`echo
- \t'`Done. Backup in: $SOURCE/$APPDIR/__$app"
- echo ""
- done
- echo "Done for all."
- echo ""
- echo "If you want to remove $SOURCE you should also move the following:"
- echo ""
- for f in /var/services/*
- do
- [ -L $f ] || continue
- target=$(readlink $f)
- if echo "$target" | grep -q $SOURCE; then
- echo "System service symlink $f to $target"
- fi
- done
- #!/bin/bash