所以,我的硬盘里有重要的文件,我需要把它们取出来。总之,我的机器上有两个硬盘:一个装有 Ubuntu GNOME 14.04,另外两个装有 Windows 7。我必须连接另一个装有 Windows 的硬盘,替换另一个装有 Windows 的硬盘,从这个硬盘复制一些文件。之后,我只连接了这个硬盘并格式化了它。好的,除了出现 grub-rescue shell 之外没有问题,但我解决了更改硬盘启动顺序的问题(不知道怎么做)。
现在,我需要获取这些文件并将它们放入 Windows 硬盘驱动器中,但还是要使用 grub-rescue shell。这次,我几乎尝试了所有方法,使用 Live CD 安装它,在 grub-rescue 中安装一些内容,更改启动顺序,但什么都没做。当我使用 Windows 或 Live CD 时,它甚至没有安装它。在第一种情况下,我没有 USB 棒,但现在我有了,我只想安装 Linux 硬盘驱动器并复制这些文件。
是的,我在这里搜索过类似这样的问题,但没有解决任何问题......
因此,这里有一些信息和我尝试过的事情:
ubuntu@ubuntu:~$ sudo fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000285b2
Device Boot Start End Blocks Id System
ubuntu@ubuntu:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 149.1G 0 disk
sr0 11:0 1 2G 0 rom /cdrom
loop0 7:0 0 935.2M 1 loop /rofs
ubuntu@ubuntu:~$ blkid
/dev/sr0: LABEL="Ubuntu 14.04 LTS i386" TYPE="iso9660"
ubuntu@ubuntu:~$ sudo mount -t ext4 /dev/sda /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sda,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
(这个我尝试了 ext2、ext3,没有任何变化)
ubuntu@ubuntu:~$ sudo fsck /dev/sda
fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
然后我尝试:
ubuntu@ubuntu:~$ sudo e2fsck -b 8193 /dev/sda
e2fsck 1.42.9 (4-Feb-2014)
e2fsck: Bad magic number in super-block while trying to open /dev/sda
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
和:
ubuntu@ubuntu:~$ sudo e2fsck -b 32768 /dev/sda
e2fsck 1.42.9 (4-Feb-2014)
e2fsck: Bad magic number in super-block while trying to open /dev/sda
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
我还尝试了其他的方法,例如:
ubuntu@ubuntu:~$ sudo grub-install --root-directory=/mnt /dev/sda
Installing for i386-pc platform.
grub-install: error: failed to get canonical path of `/cow'.
ubuntu@ubuntu:~$ parted -l
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
我在 grub-rescue shell 中尝试了一些操作,例如:
grub-rescue> ls
(hd0)
然后我尝试:
grub-rescue> ls (hd0)
它说文件系统未知,所以我尝试了这个(其中 n 是 1 到 8 之间的任意数字):
grub-rescue> ls (hd0,n)
然后我发现没有这样的分区,所以我也尝试了:
grub-rescue> set prefix=(hd0)/boot/grub
grub-rescue> set root=(hd0)
grub-rescue> insmod (hd0)/boot/grub/i386-pc/linux.mod
在我继续之前,我在这里停下来,因为它说了一些关于文件系统未知的事情(我也尝试过 insmod (hd0)/boot/grub/linux.mod 但是没有效果)
如果我需要使用 Windows 解决这个问题,我可以连接两个硬盘并使用带有 Windows 的硬盘(将其作为 BIOS 的优先级)。
抱歉,如果您不明白我说的话,我的英语不是很好......我试图尽可能具体......我真的需要那些文件,我准备格式化这个硬盘,只完成一些东西,如果我失去系统,我可能不会,我只想要那些文件。
更新:
我尝试在 Windows 上使用 Paragon ExtFS(用于 ext2、ext3 等硬盘的读取和安装程序)安装 Linux 硬盘,但即使在那里,硬盘也无法安装……
答案1
如果当前 fdisk -l 输出实际上只是这样:
ubuntu@ubuntu:~$ sudo fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000285b2 Device Boot Start End Blocks Id System
那么你以某种方式删除了你的 Linux 安装,而不是你认为的 Windows 驱动器。这将是...不幸的...
如果您有分区设置记录(这种情况不太可能发生),那么有时重新创建分区实际上仍会保留磁盘数据 - 但您必须准确无误。如果只有一个分区,那么值得尝试在 fdisk 中重新创建一个默认的 linux (83) 分区并查看它是否包含数据...
如果没有,那么你需要 foremost 之类的工具,它是一款文件恢复工具,可以扫描整个丢失的驱动器并将文件复制到新驱动器 - 这些文件将不被命名,而且你将拥有大量文件,因此这会占用你一段时间的时间。不过,它会将它们分类,这会有所帮助。
当然,您可能只是混淆了驱动器 - 我建议您检查另外两个驱动器上的内容......
答案2
在创建可启动 USB HDD 时,我遇到了非常类似的问题。不管你信不信,许多论坛和说明只推荐 ext4,因为我认为它是最广泛使用的。
在阅读和试验闪存驱动器很多天后,我在制作实时 USB 驱动器时注意到一件事,它使用的是 ext2。因此,我决定插入 USB HDD,将分区从 ext4 更改为 ext2,然后重新加载 Ubuntu。我以为会再次看到那个讨厌的 PCI 和 grub 屏幕,所以我没有抱太大希望,但令我惊讶的是,ubunutu 加载成功,至今仍在运行!因此,对于遇到此问题的人,我建议在安装 Ubuntu 时使用 ext2 并制作适当的部分。
哦,我有一台没有内置硬盘,只有外置硬盘的计算机。