V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
cuteshell
V2EX  ›  Linux

dd 命令比 rm -rf / 厉害多了,我所有的资料啊

  •  1
     
  •   cuteshell · 2016-04-07 21:21:23 +08:00 · 13330 次点击
    这是一个创建于 3185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    电脑两块硬盘,第一块安装了一个 cloudready ,第二块装了 ubuntu ,平时一般在 ubuntu 中,今天想研究一下 kali linux ,就执行了 sudo dd if=kali-linux-1.0.9a-amd64.iso of=/dev/sdb bs=512k 。在执行 dd 之前我还用 sudo fdisk -l 看了一下 U 盘是 /dev/sdc ,但是却敲成 sdb 了,等发现已经晚了...

    本来下班回来就很累很想睡觉,硬是忍着没睡。后悔啊,现在完全清醒了,好多资料和软件都没了。人家 rm -rf /最少还提醒一下 use --no-preserve-root , dd 什么都没有啊,就这个认真的执行了我的命令。

    54 条回复    2016-04-11 12:24:45 +08:00
    lifanxi
        1
    lifanxi  
       2016-04-07 21:24:40 +08:00
    这种事我也做过,应该最多只损失第一个分区的少量数据。

    想办法恢复吧,先恢复分区,然后第二个分区的数据应该是无损的,第一个分区的可以先尝试用其它没被破坏的 superblock 的数据来恢复,如果不行,就再用 testdisk 等工具扫描恢复一下。
    algas
        2
    algas  
       2016-04-07 21:25:08 +08:00   ❤️ 1
    不是我不同情你,实在是太喜闻乐见了 :P
    wsy2220
        3
    wsy2220  
       2016-04-07 21:29:32 +08:00 via Android
    不说了,两个月前把妹子的移动硬盘前几百 k 给覆盖了
    blacktulip
        4
    blacktulip  
       2016-04-07 21:29:49 +08:00
    没备份的话数据完蛋早晚的事情,不打错命令硬盘也会坏
    slrey
        5
    slrey  
       2016-04-07 21:34:14 +08:00
    这就是备份的重要性啊。不但防硬件损坏,还防自己手残。
    algas
        6
    algas  
       2016-04-07 21:36:06 +08:00
    不安慰一下 LZ 我好过意不去啊,
    很久以前在向 U 盘里 dd Live CD 的时候莫名其妙的把我刚装的 Fedora 分区干掉了,
    我现在想起来还是觉得是内存条的问题...
    darasion
        7
    darasion  
       2016-04-07 21:39:16 +08:00
    喜闻乐见。
    cuteshell
        8
    cuteshell  
    OP
       2016-04-07 21:39:29 +08:00
    @lifanxi 谢谢,我试着恢复一下。
    cuteshell
        9
    cuteshell  
    OP
       2016-04-07 21:40:50 +08:00
    @algas 吸取教训吧,以后不清醒的时候不能干危险的事情。
    loading
        10
    loading  
       2016-04-07 21:43:33 +08:00 via Android
    dd ,哈哈,我在龟速网络时代, if of 写反,浪费了一周的下载时间…
    pynix
        11
    pynix  
       2016-04-07 22:05:39 +08:00
    资料都云备份了
    zonghua
        12
    zonghua  
       2016-04-07 22:07:08 +08:00 via iPhone
    太危险
    dvorak4tzx
        13
    dvorak4tzx  
       2016-04-07 22:07:55 +08:00   ❤️ 6
    我记得自己被 rm 坑是 Makefile 里写了 clean: rm -Rf $(PUBLISH_DIR)/*,然后很傻逼的是 PUBLISH_DIR 这个变量是空…… Dafuq ……
    lzhd24
        14
    lzhd24  
       2016-04-07 22:10:49 +08:00 via Android
    楼主,是想玩渗透啊,求带
    yksoft1
        15
    yksoft1  
       2016-04-07 22:11:49 +08:00
    DD 会直接干掉文件系统本身,至少是卷的头部,确实比 rm -rf /厉害多了
    InneRs
        16
    InneRs  
       2016-04-07 22:15:22 +08:00
    恢复管用不?
    xbb7766
        17
    xbb7766  
       2016-04-07 22:23:07 +08:00 via Android
    如果没有执行到底,试试数据恢复软件吧。
    yksoft1
        18
    yksoft1  
       2016-04-07 22:23:37 +08:00
    @InneRs 如果 DD 已经结束,那至少靠机器本身的力量是救不回了
    aivier
        19
    aivier  
       2016-04-07 22:36:48 +08:00
    @wsy2220 我把自己硬盘前 512K 填零了.....可以恢复
    vivisidea
        20
    vivisidea  
       2016-04-07 22:49:47 +08:00
    喜闻乐见,这命令正常执行是直接装好一个系统么?还是要走安装流程的?

    我都是先 mount xx.iso 然后 rsync 到目标分区然后再引导安装的,这么会快一些?
    msg7086
        21
    msg7086  
       2016-04-07 23:04:58 +08:00
    所以说 dd 的时候不要先上 sudo 。
    先用普通权限敲一边,然后看下内容没错,然后再 sudo 。

    你这个其实还算好,我上次 Rails 数据表回滚的时候敲错,直接把整个数据库滚没了,数据恢复都没用。
    你现在至少还能去扫盘恢复数据。
    moonpie
        22
    moonpie  
       2016-04-07 23:09:34 +08:00 via Android   ❤️ 1
    哈哈哈哈我昨天用 mkfs.vfat 格 U 盘手贱敲成了 /dev/sdc 我整个硬盘的数据啊哈哈哈哈
    ffffwh
        23
    ffffwh  
       2016-04-07 23:15:49 +08:00 via Android
    Disk Distroyer
    wensonsmith
        24
    wensonsmith  
       2016-04-08 00:51:10 +08:00
    恢复了木有。。喜欢看峰回路转完美结局
    aprikyblue
        25
    aprikyblue  
       2016-04-08 00:54:26 +08:00
    @dvorak4tzx 这种有办法预防吗。。。不是第一次看到类似的问题了。。
    dommyet
        26
    dommyet  
       2016-04-08 01:02:09 +08:00 via Android
    之前折腾乐金 v410 降版本要刷开发时泄露的 kdz 包 然后为了修复 userdata 分区的容量问题需要手动分区 手一抖删错分区 更改即时写入 卒
    然后花了一晚上才搞好
    Cu635
        27
    Cu635  
       2016-04-08 01:29:32 +08:00
    rm -rf / 在 systermd 上是可能让电脑变砖的……
    https://bbs.archlinux.org/viewtopic.php?id=207549
    gimp
        28
    gimp  
       2016-04-08 08:06:23 +08:00 via Android
    我曾经重装系统装进了我的移动硬盘。。。当时万念俱灰

    (知乎体)如何看待 dd 命令与 rm -rf /?
    (哈哈体) dd 命令不知道比 rm -rf / 高到哪里去了
    (贴吧体)硬盘数据丢失!在线等!!急!!!
    NELSONCHI
        29
    NELSONCHI  
       2016-04-08 08:33:01 +08:00
    喜闻乐见,我每年几乎都因为各种各样的原因意外格盘。。。后来再麻烦我也经常把数据上传到网盘 etc.
    Halry
        30
    Halry  
       2016-04-08 08:34:29 +08:00 via Android
    dd 很好玩打,不如试下 dd if=/dev/zero of=/dev/sda?
    66beta
        31
    66beta  
       2016-04-08 08:45:45 +08:00
    前段时间重装 osx ,不小心格式化错了硬盘,都是泪,还好照片都找回来了
    NetCobra
        32
    NetCobra  
       2016-04-08 09:27:15 +08:00
    lz 节哀……

    我的经验,状态不好的时候不要做刷机、系统镜像恢复等高危动作,我多次熬夜都是在这种状态下搞出来的问题。
    hzqim
        33
    hzqim  
       2016-04-08 09:55:42 +08:00
    做这类危险动作还是把非目标 block devices umount 了,再三确认才操作的好。
    或者开机箱拔线后再搞。
    原创性的数据真是无价的。
    redsonic
        34
    redsonic  
       2016-04-08 10:06:34 +08:00
    dd 这类对磁盘或文件系统直接操作的 请用 /dev/disk/by-id , 降低误操作。
    SpicyCat
        35
    SpicyCat  
       2016-04-08 10:07:26 +08:00
    评论好欢乐
    julyclyde
        36
    julyclyde  
       2016-04-08 11:18:15 +08:00
    photorec 扫一遍吧,还能捡出一些内容来
    ToughGuy
        37
    ToughGuy  
       2016-04-08 11:24:53 +08:00
    http://unix.stackexchange.com/questions/46914/recovering-ext4-partition-after-dding-over-start-of-hd

    数据可以恢复的, 你只覆盖了磁盘前面=kali 镜像大小的空间。

    1. 尝试恢复分区表结构
    2. 尝试修复文件系统
    ToughGuy
        38
    ToughGuy  
       2016-04-08 11:27:35 +08:00
    cuteshell
        39
    cuteshell  
    OP
       2016-04-08 14:46:18 +08:00
    @ToughGuy 谢谢,主目录和 /opt 目录都恢复了,也就是全部的资料和比较重要的软件都恢复了。
    xlrtx
        40
    xlrtx  
       2016-04-08 14:46:41 +08:00
    kali 教程上还特意强调了留意自己的盘是 sd?的
    cuteshell
        41
    cuteshell  
    OP
       2016-04-08 14:47:38 +08:00
    @lzhd24 我也不懂,只是会用几个软件,本来想学习一下,还没开始就被打断了。
    cuteshell
        42
    cuteshell  
    OP
       2016-04-08 14:50:01 +08:00
    @InneRs @wensonsmith
    主要的软件和全部的资料都恢复了,很满意了,其他的装一次系统吧。

    我这次可悲的是整个硬盘就一个分区, swap 分区都是用的文件。看来一个比较大的 boot 分区还是挺重要的。
    cuteshell
        43
    cuteshell  
    OP
       2016-04-08 14:51:11 +08:00
    @vivisidea 应该是不同的镜像 dd 后也是不同的,一般像 ubuntu 这样的是需要走安装流程。
    cuteshell
        44
    cuteshell  
    OP
       2016-04-08 14:53:14 +08:00
    @xlrtx 看了一遍那个安装流程,也注意到他们强调了,但是当时就是顺手给敲成 sdb 了。
    rainysia
        45
    rainysia  
       2016-04-08 17:13:08 +08:00
    @vivisidea 这是作一个启动盘.
    sopato
        46
    sopato  
       2016-04-08 18:47:47 +08:00
    不得不说这是今天听到的最开心的事情了, o(∩_∩)o
    wayslog
        47
    wayslog  
       2016-04-08 19:33:38 +08:00
    数据备份的重要性……程序员都得有自己的 NAS ,再搞个 owncloud 来从 NAS 上同步……
    likuku
        48
    likuku  
       2016-04-08 19:38:16 +08:00
    so ,多机和异地备份的重要性啊...
    likuku
        49
    likuku  
       2016-04-08 19:39:00 +08:00
    现在随手测试,拿 vbox 就行了呗。
    itfanr
        50
    itfanr  
       2016-04-09 14:58:22 +08:00
    你这就是清分区表啊。
    yuedingwangji
        51
    yuedingwangji  
       2016-04-09 15:06:46 +08:00
    楼主 你那个命令执行了多久, 个人觉得还是可以恢复回来的,
    cuteshell
        52
    cuteshell  
    OP
       2016-04-09 16:33:43 +08:00
    @itfanr 不只是分区表,后面的 superblock 和 superblock 后面的一部分信息也清除了。
    cuteshell
        53
    cuteshell  
    OP
       2016-04-09 16:36:01 +08:00
    @yuedingwangji 执行了没多久,感觉也就 1s 或者 2s 吧。重要的信息都恢复回来了,但是.git/object 里面的一个目录不正常,不过这个没关系。
    itfanr
        54
    itfanr  
       2016-04-11 12:24:45 +08:00
    @cuteshell 比 rm -rf 还可怕
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1463 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:12 · PVG 01:12 · LAX 09:12 · JFK 12:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.