我在使用 buildout 进行操作时愚蠢地使用 rm -rf 从我的 Mac OS X Snow Leopard 机器中删除了一些源代码。我想尝试再次恢复这些文件。从那时起我就再也没有碰过系统,试图寻找答案。
我发现这文章中似乎 grep 方法是可行的,但是当我在计算机上运行它时,我尝试在磁盘上运行它时出现“资源繁忙”的情况。
我正在使用这个命令:
sudo grep -a -B1000 -A1000 'video_output' /dev/disk0s2 > file.txt
当我运行时,出现的是“dev/disk0s2” df
。
我运行时得到这个:
grep:/dev/disk0s2:资源繁忙
我不是这方面的专家,我只是尽力了。请问有人能进一步帮助我吗?我差点丢掉两天的源代码工作!
谢谢
答案1
答案2
一旦您启动到其他设备,您需要记住,如果您正在 grep 文件名,您可能无法获得您想要的内容,因为文件名不在文件本身中 - 除非您将它包含在注释或某些内容中。
您需要 grep 查找文件中存在的一些短语。
答案3
您必须grep
使用disk
而不是disk slice
。以我的机器为例,
$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *240.1 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Sandisk 240G 239.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
disk0
是整个磁盘,disk0s2
是我删除文件的分区。Grep 在磁盘片上不起作用
$ sudo grep --binary-files=text --context=10 '192.168.1.196' /dev/disk0s2 > recovered.txt
Password:
grep: /dev/disk0s2: Resource busy
但可以在磁盘本身上运行
$ sudo grep --binary-files=text --context=10 '192.168.1.196' /dev/disk0 > recovered.txt
警告
grep
在 OSX 中读取原始磁盘不起作用 - 并且会导致 OSX 崩溃。当我运行上述命令时,Activity Monitor
显示grep
正在快速读取数据。读取大约 3GB 后,OSX 挂起,我不得不重新启动。