闲来无事,又想玩下群晖,就重新在pve上部署了个黑裙,不得不说现在rr引导是真方便,全程不用命令就可以完成部署,扯得有点远了,以后有机会再写一篇。在飞牛刚出的时候时候我就猜应该是可以直接把群晖的硬盘(btrfs)直接挂载到飞牛fnos上,不过后面没玩了,这不又玩下群晖,也顺便把群晖的btrfs挂载到飞牛os上,就可以实现无损迁移。
一、前排说明
我是只在虚拟机下做了测试,不过虚拟机可以,实体机也肯定是没问题的,本教程参考了群晖官方文档。这里我sata2-4为旧群晖的btrfs raid5硬盘,sata5为飞牛系统盘,scsi0是飞牛的存储空间(这个看下文,会有解释),至于剩下两个未使用的磁盘,那就是黑裙的系统和引导。
需要说明的是我测试为做了raid5的btrfs阵列,当然,只要是btrfs都可以,无论是否raid。至于其他格式的磁盘没试过,以后折腾了再写一篇。本教程也适用于迁移到常规linux系统,只要不是啥特殊的定制系统,都可以用这个方式迁移。
最后,此方法只是实现了挂载,而非直接“恢复存储池”,具体请看文末的说明。开始前先展示下原群晖磁盘的文件。
二、配置飞牛
因为这个是挂载,所以是需要现在一个飞牛的存储池下进行挂载,我就单独给虚拟机配置了一个1g的存储池,注意我这个是存储空间1,这个1要留意下,等下会用到。这个存储空间不用多大,因为只是用来挂载群晖的那个btrfs磁盘,甚至几M的空间都足够了。
特别提醒下,插入了群晖硬盘后,不要对其硬盘做任何操作,包括格式化和建立存储池,否则数据就直接丢失了,直接让其处于未使用的状态就行。
然后开启飞牛的ssh,进入设置,ssh里面开启,然后通过xshell或者cmd等工具登录到飞牛ssh,ssh账户密码为自己fnos的账户密码。
登录ssh后先进入root,输入以下命令并输入自己账户密码切换到root用户:
sudo su
然后输入以下命令查看btrfs raid5信息,例如图里面是volume_1 vg1,那我这里硬盘实际位置就是/dev/vg1/volume_1,:
cat /proc/mdstat
lvs
然后就是直接挂载/dev/vg1/volume_1,输入以下命令挂载,注意自行修改实际路径,具体看注释:
mount /dev/vg1/volume_1 /vol1/1000
#这里/dev/vg1/volume_1就是刚获取到的硬盘位置,而vol1则是需要挂载的存储空间位置,例如我上面是存储空间1,那这里就是vol1,而1000代表飞牛os的账户id,管理员id就是1000,如果需要挂载其他用户下,需要改成对应的用户id
运行后是不会有任何提示,这是正常的,回到飞牛web界面,打开文件管理器,进入到对应的存储空间,就可以看到之前群晖硬盘的文件了。
但是,此时还没结束,因为一重启就会丢失挂载,还需要配置一个开机自动挂载,这里我没用常规添加/etc/fstab的方式,因为飞牛系统本身mdadm和lvm2启动就靠后,直接添加/etc/fstab会无法挂载对应的磁盘。所以我这里通过建立一个系统启动服务来实现开机挂载,在ssh下输入以下命令:
sudo nano /etc/systemd/system/mount_volume.service
然后就可以建立这个启动文件,输入以下文本,并同时按住ctrl+o键保存,如果不熟悉nano命令就自行百度,注意需要把里面的路径自行替换成自己实际路径:
[Unit]
Description=Mount volume_1
After=multi-user.target
Wants=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/mount /dev/vg1/volume_1 /vol1/1000
#注意替换自己的实际路径
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
然后再依次输入以下命令,添加到启动项并启动:
sudo systemctl daemon-reload
sudo systemctl enable mount_volume.service
sudo systemctl start mount_volume.service
最后直接重启飞牛系统,查看是否自动挂载。
三、相关说明
1.上面也说了,这个是直接挂载到现有的存储空间下,而非直接把原来的阵列给恢复到了飞牛上,所以原来的几个硬盘是一直处于“未使用”的状态,所以切记不要格式化原来的磁盘,不然数据直接丢失。
2.不清楚飞牛升级后是否会导致启动服务丢失,我还没升级过,如果丢失了还需要自己手动重新建立脚本。
评论前必须登录!
注册