系统相关
首页 > 系统相关> > linux – 从SSD中删除分区

linux – 从SSD中删除分区

作者:互联网

我不小心从我的主磁盘(SSD)中删除了与Windows相关的2或3个分区(我是双启动Mint和Win 10).一旦我意识到我正在使用错误的驱动器(我试图从内部HDD中删除分区),我就停止了自己.

系统仍在运行,如何恢复意外删除的分区?

解决方法:

只要您只删除了分区,并且没有将任何内容写入以前由分区占用的空间,您就可以重新创建分区.只需要注意只重新创建分区,而不是在它们上创建文件系统或以其他方式格式化它们.您只需要重写分区表.

即使您重新启动了系统,也可以这样做,但可能更难找到必要的信息.

要重新创建分区,您需要知道:

>它的起始位置.这是绝对必要的.如果你弄错了,你将无法访问任何数据.
>它的大小.如果它太大,你就会浪费空间.如果它太小,请小心:它可能看起来随便工作,但随后导致可怕的数据丢失.
>可能是它的类型. Linux主要不关心分区类型,但Windows确实如此.幸运的是,如果你知道操作系统和分区有什么用法(例如文件系统,交换,加密卷……),那就决定了分区类型.
>可能是它的数量.分区号决定了Linux中/ dev / sdz99中的数字和Windows中的驱动程序字母.

注意偏移和大小的舍入,以及十进制和二进制单位前缀之间的差异,例如: 1,000,000字节(1 MB,十进制)与220 = 1,048,576字节(1 MiB,二进制).我建议使用fdisk并在512字节扇区中指定大小,因为所有大小和偏移都是512字节的倍数,而较大的单位会带来舍入风险.

在Linux下,您可以从/ sys / block中的文件中找到内核知道的分区的位置.如果内核仍在使用某些旧分区,那么在修改它之后它将无法重新读取分区表,因此这仍然是旧信息.该单元是512字节块.例如:

$cat /sys/block/sda/sda2/start    
14680064
$cat /sys/block/sda/sda2/size 
2097152

这显示了从偏移14680064 * 512字节(7 GiB)开始的分区号2,大小为2097152 * 512字节(1 GiB).

如果您无法确定分区的起始位置,则可以使用将要搜索它们的工具. TestDisk包括此功能.你可以在Mint上安装它(有一个Debian软件包)或者从liveCD / liveUSB运行它.如果要恢复已删除的文件,则非常需要实时运行,但如果刚刚从分区表中删除了分区,则可以继续正常使用系统.使用一个参数运行testdisk,即要恢复分区的磁盘,然后使用“Analyze”菜单.

确保建议的分区看起来合理.该工具可能会发现误报,尤其是但不限于您在今天之前删除的以前分区的位置.

一旦您认为已恢复分区,请进行一些健全性检查:

> file -s / dev / sdz99应该告诉你/ dev / sdz99包含你期望的那种文件系统或其他卷.
>在ext2 / ext3 / ext4文件系统上运行tune2fs -l,在ntfsinfo上运行以探测NTFS文件系统等.
>在文件系统上运行fsck -n.如果分区在文件系统之前结束,它应该大声抱怨(但我不确定这是否适用于所有文件系统类型).

标签:linux,partition,data-recovery
来源: https://codeday.me/bug/20190816/1668784.html