实验环境说明:有一台服务器,原来运行Freebsd13,机器上有一个SATA接口250G硬盘,现系统无法引导,需要从原来的硬盘中把重要数据导出。由于原来系统采用了ZFS文件系统,一般的linux是没有办法识别到的,我们只能制作一个USB的FreeBsd13引导盘,通过这个U盘去引导计算机,引导后按下面步骤操作即可。
ZFS文件系统是Unix系统的一种常用文件系统,假设我们要从一台已系统无法正常引导的FreeBsd电脑中去读取原来的重要数据,那么就必须用另一个可引导的FreeBsd引导盘去引导电脑,然后再来挂载zfs文件系统。以下操作全部必须是root用户权限下操作。
1、在FreeBSD中查看系统中安装的硬盘:
用dmesg查看系统引导的相关信息,命令如下:
dmesg | less
输入上面命令后,会显示很多的硬件信息,在最后一页上可以看到本机的硬盘信息,这台电脑上原来有一个IDE的硬盘,这儿识别到是ada0,我是从一个闪迪U盘上去引导这台电脑的,因此这儿识别到了它为da0,从这儿可以得知我们电脑上需要导出数据的硬盘名称是ada0。
2、查看硬盘的分区信息:
gpart list -a /dev/ada0 | less
从上面的显示我们可知,原来的系统中有3个分区,分别是freebsd-boot,freebsd-swap,freebsd-zfs,我们原来的数据全部存在于freebsd-zfs分区,也就是ada0p3.
这个分区是没有办法直接挂载的。
3、利用zfs管理工具zpool去查找zfs pool.
zpool import -fR /var/mnt zroot
4、确认zfs pool加载成功:
zpool list
、通过访问/var/mnt即可完成我们对原来硬盘系统中的数据复制动作。
原来的root目录加载(在/var下建立一个mnt-root目录)将原来的硬盘中的/目录挂载到此目录,命令如下:
mount -t zfs zroot/ROOT/default /var/mnt-root
这样就可以通过访问/var/mnt和/var/mnt-root即可实现全部的数据访问。
金石艾特(JS@) 版权所有 Copyright2001-{{ message }} www.dgjs.com Inc. All Rights Reserved禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任