«

删除PVE后windows 下 zfs的挂在 群晖分区

学长 发布于 阅读:949 NAS


pve系统分区的btrfs崩盘,目测是raid10但是还是无法修复

虽然更绝btrfsck的提示做了几步重构了tree什么的

还是无法正常启动

并且硬盘读写缓慢。。。

一块硬盘还好,但是4块硬盘的虚拟化3150那不能直通速度狠拉跨

现在数据主要在4个分区中的ZFS

但是因为linux分区的删除

///跟linux系统分区删除无关一直跳过到下一个///

直接在windows中尝试zpool list出现了

/dev/zfs and /proc/self/mounts are required.
Try running 'udevadm trigger' and 'mount -t proc proc /proc' as root.
猜测是pve的分区丢失导致的


wsl中安装zfs尝试挂在。。。

先安装zfs:

sudo apt install zfsutils-linux

zpool list看下zfs基本功能出来没

The ZFS modules are not loaded.
Try running '/sbin/modprobe zfs' as root to load them.

其实破解的UFS可以读到但是因为但是zfs新建zvol的没选择discard,并且给了几乎全部的空间。。。真要恢复出来数据空间需要巨大,肯定也巨长

复制最新的zfs

Releases · openzfs/zfs · GitHub

进wsl wget下

cd ~

wget https://github.com/openzfs/zfs/releases/download/zfs-2.2.0/zfs-2.2.0.tar.gz

tar -zxvf zfs-2.2.0.tar.gz

./configure

发现没gcc之类的编译环境,先 sudo apt install gcc

又出现update错误 sudo apt-get update --fix-missing

重装下gcc

还得zlib-devel

ubuntu中得用apt install zlib1g

apt install zlib1g-dev

还缺libuuid-devel

apt install uuid-dev

继续缺libblkid-devel

apt install libblkid-dev

缺libssl-devel

apt install libssl-dev

缺 kernel devel package

apt install linux-headers-$(uname -r)

因为是微软特制的没有对应的linux-headers-4.4.0-22621-Microsoft


我再看看网上都是怎么在wsl下使用zfs的。。。

发现有个zfs on wsl的项目

https://github.com/alexhaydock/zfs-on-wsl


///跟删除pve 的 linux分区无关,是360把相关的驱动删除了,重新安装Releases · openzfsonwindows/openzfs (github.com)

就行了

在powershell里

$a=zpool import | select-string "pool:"; echo $a

为啥这么写,因为powershell没有grep

找到可以导入的zfs pool我的是ZFS

zpool import -f ZFS

然后参考微软官网:关于在 WSL 2 中安装 Linux 磁盘的入门 | Microsoft Learn

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

获得硬盘列表,为啥不用diskpart因为得用DiskPath

wsl --mount \\.\PHYSICALDRIVE4 --bare

最好加--bare,因为尝试不加发现挂在很久也没结束。。。

wsl1这么挂在找不到的,wls1只能通过windows中已经识别的分区来挂载

另外得去硬盘管理中把zfs对应的zvol改成offline不然挂不上去wsl2

lsblk -f

查看识别到了没,识别到linux_raid_member,看来得用dm

先安装mdadm

sudo apt install mdadm

用到mdam肯定得用lvm的

sudo apt install lvm2

先md组建


sudo mdadm --assemble /dev/md0 /dev/sdc5 --update=devicesize --verbose

sudo vgchange -ay

ll /dev/mapper/

看到挂载成功到vg1-volume_1

再挂到文件夹上

sudo mkdir /mnt/30T

sudo mount /dev/mapper/vg1-volume_1 /mnt/30T

呃。。。btrfs貌似也没有。。。

sudo apt install btrfs-progs

然后重新试着挂载到文件夹


挂载失败。。。

sudo btrfs check /dev/mapper/vg1-volume_1

发现有错误

尝试下只读挂起

sudo mount -t btrfs -o ro /dev/mapper/vg1-volume_1 /mnt/30T

诶。。。也挂不起来

sudo btrfs check --repair /dev/mapper/vg1-volume_1

修复下。。。还是挂不起来。。。


好家伙看了官网不是在mapper下。。。

https://kb.synology.com/hu-hu/DSM/tutorial/How_can_I_recover_data_from_my_DiskStation_using_a_PC

先运行sudo lvs

然后 ls /dev/vg1


https://askubuntu.com/questions/882121/shr-raid-drives-with-crashed-nas-os-synology


https://stackoverflow.com/questions/46472439/fix-btrfs-btrfs-parent-transid-verify-failed-on


mdadm -Asf && vgchange -ay



只能说能加载zfs但是长期运行经常蓝屏。。。。。。

 

切换还有安装都得打开windows update,我一般默认是关闭的更新的。。。毕竟只是N3150

wsl 安装

Windows10/11 三步安装wsl2 Ubuntu20.04(任意盘) - 知乎 (zhihu.com)

得先开启虚拟机平台还有子系统

wsl --install

安装wsl

wsl --set-version Ubuntu 2

把默认安装在1的改到2下

wsl --set-default Ubuntu

设置默认的wsl

wsl --set-default-version 2

设置wsl2为默认


wsl -d 其他的发行本

运行其他的wsl

wsl --unregister 要删除的发行本

wsl -l -v 查看安装的发行本

wsl -l --online 查看可以安装的其他发行本


把wsl1的切换成2

输入wsl进ubuntu

设置root密码方便切换成root使用,sudo passwd root





扫描二维码,在手机上阅读