拯救删除ZFS之后的分区表
本想安装在笔记本上安装FreeBSD+Linux双系统,不过总是引导不起来,遂放弃。删除分区表之后,准备调整分区大小,结果发现 gparted里,显示的只有zfs一个分区,但是lsblk却又是正常的。经过搜索发现是ZFS写入了metainfo,于是就看怎么删除。
删除是这样的:
# zpool clearlabel /dev/sda
然而,这会带来一个严重后果:分区表被破坏了。我试着用Linux的live磁盘进去,但是Linux已经认不出来了。一般Linux的live系统 不带gpart这个程序,因此我用FreeBSD live系统进去,发现还可以认出来:
# gpart disk list
...
不过输出里,会显示 GPT Corrupt
,幸好gpart特别强大,可以直接修复:
# gpart recover /dev/sda
呼,搞定,有惊无险,系统数据得以保存。要是真的把分区表给完全摧毁了,数据就没了。
Refs:
- https://forums.freebsd.org/threads/gpt-table-corrupt.52102/
- https://unix.stackexchange.com/questions/270595/how-do-i-expand-a-file-system-to-fill-a-partition
- https://forums.freebsd.org/threads/gpt-rejected-how-to-wipe-for-zfs.54187/
更多文章
本站热门
- socks5 协议详解
- zerotier简明教程
- 搞定面试中的系统设计题
- frp 源码阅读与分析(一):流程和概念
- 用peewee代替SQLAlchemy
- Golang(Go语言)中实现典型的fork调用
- DNSCrypt简明教程
- 一个Gunicorn worker数量引发的血案
- Golang validator使用教程
- Docker组件介绍(二):shim, docker-init和docker-proxy
- Docker组件介绍(一):runc和containerd
- 使用Go语言实现一个异步任务框架
- 协程(coroutine)简介 - 什么是协程?
- SQLAlchemy简明教程
- Go Module 简明教程