You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用fdisk将未被覆盖的原有磁盘分区重新添加至新分区表

如何使用fdisk将未被覆盖的原有磁盘分区重新添加至新分区表

别担心,只要你之前准确记下了旧分区的起始扇区、结束扇区以及分区类型信息,用fdisk把它恢复到新分区表里其实非常简单,我给你一步步拆解操作:

  • 第一步:启动fdisk工具
    打开终端,运行以下命令(注意替换成你的磁盘设备名,比如你的是/dev/nvme0n1):

    sudo fdisk /dev/nvme0n1
    

    👉 这里一定要确认磁盘设备名正确,选错磁盘会直接破坏数据,建议先用lsblkfdisk -l再核对一遍。

  • 第二步:创建新分区
    在fdisk的交互提示符下,输入n来创建新分区:

    • 系统会询问是创建主分区(p)还是扩展分区(e),根据你之前记录的旧分区类型选择即可;
    • 接着输入分区号(比如如果旧分区是第2个,当前新表中没有占用2号的话就填2,否则选一个未使用的编号);
    • 最关键的部分:输入你之前记下的旧分区起始扇区数值,然后输入旧分区的结束扇区数值(如果之前记录的是大小,也可以用+XXG这种格式输入,但用扇区数是最精确的)。
  • 第三步:匹配旧分区类型
    输入t来修改分区类型码:

    • 输入你刚创建的分区编号;
    • 输入旧分区对应的类型码(比如Linux文件系统通常是83,EFI分区是EF,NTFS是07,你之前的fdisk输出里应该有这个信息,照着填就行)。
  • 第四步:验证并保存分区表
    输入p打印当前的分区表,仔细核对新添加的分区的起始/结束扇区、类型码是否和你之前记录的完全一致。
    如果一切没问题,输入w保存分区表并退出fdisk,系统会自动重新读取分区信息。

  • 第五步:验证分区可用性
    退出后,用lsblksudo fdisk -l /dev/nvme0n1查看分区是否已经出现。之后可以尝试挂载分区:

    sudo mkdir -p /mnt/recovered_partition
    sudo mount /dev/nvme0n1pX /mnt/recovered_partition  # 替换X为你的分区编号
    

    如果能成功挂载,并且能看到里面的文件,说明操作成功了!

额外注意事项

  • 操作前建议先备份当前的分区表,比如用sgdisk
    sudo sgdisk --backup=nvme0n1_partition_backup.gpt /dev/nvme0n1
    
    万一操作失误,还能用sudo sgdisk --restore=nvme0n1_partition_backup.gpt /dev/nvme0n1恢复。
  • 如果挂载时提示文件系统损坏,可以先卸载分区,然后运行文件系统检查工具(比如ext4用sudo e2fsck /dev/nvme0n1pX),不过这一步要谨慎,确保没有写入操作。
  • 如果你不确定旧分区是否被部分覆盖,建议先试试testdisk这类工具扫描磁盘,确认分区内的数据还完整,再进行上述操作,避免错误的分区表导致数据恢复难度增加。

备注:内容来源于stack exchange,提问作者E. K.

火山引擎 最新活动