几乎用 GParted 格式化了我的主磁盘。重新启动安全吗?

几乎用 GParted 格式化了我的主磁盘。重新启动安全吗?

在尝试格式化我的 USB 密钥时,我意外选择了 /dev/sda 并继续格式化磁盘。幸运的是,当 GParted 注意到驱动器当前已安装时,格式化被中断。但是,我再也看不到分区了(即使我重新启动 GParted,我仍然看到此信息):

gparted 问题

我还没有重启,因为我害怕重启。目前,我可以正常使用我的文件系统,但我担心如果重启可能会发生一些不好的事情。我该怎么做才能解决这个问题?重启安全吗?

更新:

我尝试为 Windows 7 创建可启动的 USB 密钥,因此我单击了设备/创建分区表并选择“msdos”。然后,我尝试创建一个主分区 (NTFS),但由于 /dev/sda 已挂载,因此出现错误。我不确定在哪里可以找到确切的日志。以下是输出sudo fdisk -l

➜  ~  sudo fdisk -l
[sudo] password for olalonde: 

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001db65

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       60801   488384001    7  HPFS/NTFS

Disk /dev/sdb: 7998 MB, 7998537728 bytes
255 heads, 63 sectors/track, 972 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005e98c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         972     7807558+   7  HPFS/NTFS

正如我所说,我的文件系统已正确安装,因此我可以备份所有文件,但如果重新启动是安全的或者在重新启动之前有办法解决这个问题,我宁愿不经历那么漫长的过程......

更新2:

mount和的输出cat /proc/mounts

➜  ~  mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
/home/olalonde/.Private on /home/olalonde type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_sig=ee352762b400fa23,ecryptfs_fnek_sig=70e5eee62e053b1b,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
gvfs-fuse-daemon on /home/olalonde/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=olalonde)
/dev/sda1 on /mnt type ext4 (rw)

➜  ~  cat /proc/mounts
rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=2005108k,nr_inodes=501277,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
/dev/disk/by-uuid/bbf66c3f-ae71-4389-9f83-282e95ce6ee9 / ext4 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
none /var/run tmpfs rw,nosuid,relatime,mode=755 0 0
none /var/lock tmpfs rw,nosuid,nodev,noexec,relatime 0 0
none /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
/home/olalonde/.Private /home/olalonde ecryptfs rw,relatime,ecryptfs_fnek_sig=70e5eee62e053b1b,ecryptfs_sig=ee352762b400fa23,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs 0 0
gvfs-fuse-daemon /home/olalonde/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0
/dev/sda1 /mnt ext4 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0

更新 3:

我正在尝试使用testdisk。有人能确认我做的是否正确吗?我是否应该单击那个看起来很吓人的“写入”?

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 (选定 N) 在此处输入图片描述 在此处输入图片描述

答案1

我无法复制您的场景——如果分区已挂载,无论是显式挂载(fstab/mount),还是隐式挂载(通过 Nautilus 等),GParted 不允许你在卸载之前在父设备上创建分区表

我怀疑 GParted 已成功覆盖 /dev/sda 上的 MBR/分区表。重新启动将导致内容无法访问,因此暂时不要这样做。如果您做好准备,我相信 testdisk 应该能够恢复分区表。

应该有一种方法可以获取内存(内核)分区表布局 - 这就是您仍然可以访问内容的方式 - 但我记不起有简单的方法来做到这一点。

与此同时,至少备份关键的内容也许是个好主意......

答案2

我刚刚在虚拟机中使用fdisk而不是重现了您的问题gparted

之前我有:

  Device  Boot  Start   End    Blocks   Id  System
/dev/sda1   *       1    18    144553+  83  Linux
/dev/sda2          19  2450  19535040   83  Linux
/dev/sda4        2451  2610   1285200   82  Linux swap / Solaris

然后我fdisk删除了分区 4、2 和 1,并创建了一个覆盖整个磁盘的新主分区。然后我将类型更改为 NTFS (07) 并将其写入磁盘。

fdisk -l /dev/sda然后报道:

  Device  Boot  Start   End    Blocks   Id  System
/dev/sda1           1  2610  20964793+   7  HPFS/NTFS

然后我运行“testdisk /dev/sda”,它几乎立即给出了一个分区列表,写入时报告为:

  Device  Boot  Start   End    Blocks   Id  System
/dev/sda1   *       1    18    144553+  83  Linux
/dev/sda2          19  2450  19535040   83  Linux
/dev/sda3        2451  2610   1285200   82  Linux swap / Solaris

唯一的区别是它移到/dev/sda4/dev/sda3。虚拟机已成功重启。

对于您来说,由于 mount 显示您只有一个分区,/dev/sda1所以testdisk应该能够毫无问题地恢复它。

无论如何,testdisk它都会为您提供是否将其结果写出来的选项,这样您就不会因为运行它而失去它。显然,您可能需要这样做sudo apt-get install testdisk

当然,如果可能的话,备份所有关键内容可能是明智之举。

答案3

你能做到吗:

sudo fdisk -l /dev/sda

这样您应该能够看到它是否仍然可以识别分区,例如:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1171455      584704   83  Linux
/dev/sda2         1171456     3125247      976896   82  Linux swap / Solaris
/dev/sda3         3127294    15611903     6242305    5  Extended
/dev/sda5         3127296    13869483     5371094   83  Linux
/dev/sda6        13871104    15611903      870400   83  Linux

这是我在系统上得到的。如果它不再正确识别您的文件系统,那么我不确定您是否可以做更多的事情。

在这种情况下,我建议备份所有最重要的文件,因为您可能能够使用fdiskcfdisk设置分区类型,然后用来fsck检查文件系统。

但我不确定它是否还能修复你的分区。这样的事情真的很糟糕,我无意中输入了rm -rf /tmp /一次,在我按下的瞬间,CTRL+C我的 /bin 的一半已经被删除了,我不得不重新安装。

我希望我的建议能够为您指明正确的方向,并且您能够修复您的系统。

如果你遇到任何事情请告诉我。

更新 3 的答案:

我相信写入是可行的方法。它应该将分区类型和标志恢复为 gparted 之前的状态。但是我无法说明备份有多重要,以防万一出现问题。

'testdisk' 完成后再次运行'fdisk -l /dev/sda' 并发布输出。

相关内容