Yanlışlıkla dd / dev / sda yaptı


35

Kullanarak sabit diskime bir ISO imgesi yazdım sudo dd if=image.iso of=/dev/sda. Demek istediğim /dev/sdcve şimdi çalışan sudo fdisk -l, 6 olması gerektiği halde / dev / sda üzerinde yalnızca bir bölüm döndürür. Verilerimi kurtarmak mümkün mü?

Bilgisayarımı henüz kapatmadım (yeniden başlatmadım).


24
ddyine çirkin 'Veri Destroyer' yüzünü gösterdi :-( O (iso dosyasının boyutuna karşılık gelen) sürücünün baş ucunu üzerine yazmış. Orada kaybolur edildi verileri. Eğer oldukça son yedeği var mı kaybetmeyi göze alamayacağınız dosyalar? Aksi takdirde, en iyi Testdisk kullanarak klonlanmış bir kopyaya sahip bölüm tablosunu ve dosya sistemlerini tamir etmek için hazırlıklı olmalısınız ve bu başarısız olursa, dosya verilerini 'geride bırakmak' için daha da zor işler Sürücünün üzerine yazılmış olan kısmı, PhotoRec'i bu amaç için kullanabilirsiniz .. Bu bağlantıya bakınız, cgsecurity.org
sudodus

6
Sürücü gpt bölümlenmişse, sürücü sonunda bir yedekleme bölümleme tablosu avantajına sahiptir. ISO boyutuna sadece sürücü başlangıcı tamamen üzerine yazıldı ve kayboldu. Bölüm boyutlarına bağlı olarak diğer bölümlerin bir kısmını veya çoğunu kurtarabilirsiniz.
oldfred

10
@sudodus " ddçirkin 'Veri Yok Edici ' yüzünü tekrar gösterdi" - Yapacak bir şey olmadığı sürece dd, doğrudan bir disk aygıtına kök olarak erişilmesiyle ilgili. Başka herhangi bir araç aynı etkiye sahip olabilirdi. cat image.iso > /dev/sdaaynı etkiye sahip olurdu. Veya pv .... Veya bir dereceye kadar bile vi /dev/sda. Aslında, bu bana Linus Torvalds'ın modem aygıtı yerine sabit sürücü aygıtını kullanarak bir ağa çevirmeye çalıştığını ve sürücünün başlangıcını çevirmeli el sıkışması ile üzerine yazdığı hikayeyi hatırlatıyor . Yapacak bir şey yok dd.
mart

4
Dosyan tam olarak ne kadar büyük .iso? Ara verdin mi yoksa bitmeye mi kaldın dd?
mart

4
@ marcelm, haklısın. Fakat gerçek hayatta insanlar böyle kullanıyor dd(bu amaçla), bu yüzden 'Veri Destroyer'i uyarısının ilgili olduğunu düşünüyorum, bununla birlikte tamamen doğru uyarı daha uzun olmalı: " sudo dd if=image.iso of=/dev/sdxBir kütleye klonlamak gibi bir komut satırı kullanmayın Doğru hedef cihazı tanımlamanıza ve seçmenize yardımcı olan ve son kontrol noktası olan bir araç kullanın, böylece iso dosyasından doğru hedef cihaza klonlayacağınızı iki kez kontrol edebilirsiniz, örneğin StartupDiskCreator, Disks, mkusb , Win32DiskImager. "
sudodus

Yanıtlar:


65

Bilgisayarınız hala açık olduğundan, bir şeyleri kaydetme şansınız yüksektir.

İlk olarak, sysfsçekirdeği, bölüm tablolarının bellek görünümünde gösterir. Şu anda çekirdeğiniz diskin masasını yeniden okumadı ve sizin bölümlemenizi hatırlıyor. İçinde /sys/block/sda/, her bölüm için bir dizin olmalıdır. Bu alt dizinlerin her biri , sektördeki bölümün konumunu ve boyutunu temsil eden bir dosya startve bir dosya içerir size. Çalıştırın fdiskve ardından her bölümü (sırayla!) Dizinindeki bilgilerle yeniden oluşturun sysfs. Siz de yeni bir bölümleme tablosu oluşturmanız gerekeceğini unutmayın. Yeni bölümleme tablonuzun öncekiyle aynı olduğundan emin olun. Bunu kontrol edebilirsiniz /sys/block/sda. Eğer görürseniz sda1kadarsda7sadece 6 bölümünüz olmasına rağmen, muhtemelen MBR'niz vardı, aksi halde muhtemelen GPT idi. Ayrıca, bu bölümler için bayraklar ve türler ayarlamanız gerekir. Sahip /etc/fstabolduğunuz bölüm türleri hakkında bilgileri inceleyin ve bilgi toplamaya çalışın, daha sonra bunları bölümlendirme şemanızın kodlarına dönüştürmek için Wikipedia'yı işaretleyin.

Dosya sisteminizi kullanabiliyor göründüğünüz için dd, bir dosya sisteminin önemli parçalarının çoğu ön tarafta olduğundan, herhangi birinin üzerine yazma olasılığınız yoktur. /etc/fstabHangi bölümlerin sisteminizin hangi bölümüne karşılık geldiğini görmek için kontrol edin ve ne kadar paranızın ddolduğuna dair bir tahminde bulunmak için kopyalanan veri miktarını kullanın . İyi bir dosya sisteminin sen üzerine yazarak sadece bir bölümü ise fsck belki bunu biraz düzeltmek mümkün (ancak verilerin iyi bir yığın kaybettim).

Büyük olasılıkla, üzerine yazdınız /boot. Çekirdeğinizi yeniden (ile aptitude) ve GRUB2'yi (ile grub-install) (hem ilk hem de ikinci aşamasını yok ettiren) yeniden kurmanız gerekir . GRUB2, içerdiği dosyalar ile yapılandırılmıştır /etc, bu nedenle hiçbir şeyi manuel olarak yeniden oluşturmak zorunda kalmazsınız.


15
" /sys/block/sda/*/{start,end}Bu bilgileri kullanarak bölümlerinizi kontrol edin ve yeniden yaratın": Bu konuyu biraz genişletebilir misiniz? Önemsiz bir işlem değil ve aksi halde mükemmel cevabınızın ana noktası gibi görünüyor.
terdon

Deşifre daha kolaydır Çıktı, ............... her sonra DÖNÜŞÜ ile istemi kabuk olarak bu yazın: sudo parted, unit s, print all,quit
Hannu

3
Değerli herhangi bir bilgiyi başka bir sürücüye kopyalayın (örn. Bir USB bellek). Bölüm yeniden oluşturma adımlarından herhangi birinin kusursuz ilerlememesi durumunda, hareketsiz bilgisayarın belleğinde ne olduğuna dair bir kayıt sahibi olmak istersiniz. Ayrıca, çalışan bilgisayarınız hala çalışırken , en değerli ve / veya küçük dosyalarınızı ( .bashrcev dizininizdeki ve diğer /etcveriler gibi şeyler de dahil olmak üzere diğer nokta dosyaları dahil ) ve gerçek verilerinizin yanı sıra başka bir diske kopyalayın . tar.gz, tüm dizinleri kopyalamak için iyi bir formattır (çünkü izinleri ve materyalleri korur).
Peter Cordes,

Ayrıca çekirdeğin ne olduğunu / önyüklemesini, çekirdeğin bölme düzeninizi ne düşündüğü belirsiz olduğunda tehlikeye
girme tehlikesiyle karşı karşıya kalması gerekecek

1
@rackandboneman Çekirdek, bölme tablolarını, takılı bölmeleri olan bir diskte yeniden okumak istemiyor. /bootBöyle bir yeniden biçimlendirme mükemmel bir şekilde "güvenli" (modulo bu durumla ilgili diğer her şey ) çünkü çekirdek hiçbir şey hakkında belirsiz değil.
HTNW

21

Zor şansın için okuduğum için üzgünüm

Sanırım şu anki yedeğiniz yok ve zorlu şansınızı okuduğum için üzgünüm.

sudo dd if=image.iso of=/dev/sdx

sürücü harfini kullandığınız yer x= aböylece çok değerli verilerin depolandığı sabit disk sürücünüzün başlangıcını üzerine yazıyordunuz.

Sen ilk kişi değilsin ve korkarım bu sorundan etkilenen son kişi değil. ddBunun gibi birçok web sitesinde kullanılması tavsiye edilir. Bu güçlü ama tehlikeli bir yöntem çünkü soru sormadan yapmasını istediğin şeyi yapıyor. Bu nedenle genellikle 'Veri Yok Edici' olarak adlandırılır.

@ marcelm, bu takma adın haksız olduğunu belirtti. Direkt olarak bir aygıt dosyasına doğrudan yazmanın tehlikeye neden olduğu konusunda haklıdır . Bu nedenle, lütfen sürücünün üzerine kolayca yazabileceğinizi ve ilgili aygıt dosyasına yazarak değerli verileri imha edebileceğinizi unutmayın /dev/sdx. (Bu cevabın sonunda daha güvenli araçlar listelenmiştir.)

Bölüm tablosunu, dosya sistemlerini ve / veya dosya içeriğini kurtar

  • Sürücü ile mümkün olduğu kadar az işlem yapın ve hepsinden önemlisi, üzerine hiçbir şey yazmayın, çünkü verilerin kurtarılması daha olası olan verilerin üzerine yazılması durumu daha da kötüleştirebilir.

  • Verileriniz değerliyse, orijinal (kısmen üzerine yazılmış) bir sürücüden değil, klonlanmış bir kopyadan çalışmalısınız . Bu bağlantıya bakın, 'Bölüm tablosunun gelişmiş onarımı, dosya sistemi ve / veya dosyaların kurtarılması' bölümüne gidin

    Bir pendrive'ın bölüm tablosunu ve dosya sistemini onarın

  • Bir GUID bölümleme tablonuz varsa, GPT, sürücünün sonunda bölümleme tablosunun bir yedeği vardır /dev/sdave aracı kullanarak ana bölümleme tablosunu bu yedekleme tablosundan geri yükleyebilirsiniz gdisk. Ayrıntılar için kılavuza man gdiskbakın.

  • Testdisk’i kullanarak bölüm tablosunu ve dosya sistemlerini geri yüklemeyi başarabilirsiniz .

    http://cgsecurity.org

    CGSecurity web sitesindeki talimatları ve ayrıca @ElderGeek tarafından sağlanan bağlantıyı okuyun, Partisyonlar kurulum sırasında elektrik kesildikten sonra kayboldu

  • Ayrıca @CSM tarafından sağlanan bağlantıya göre gpart / gparted kullanarak bölüm tablosunu ve dosya sistemlerini geri yükleyebilirsiniz.

    NASIL: Kayıp Bölümleri Silinmiş veya Bozuk Bir Bölüm Tablosuna Geri Yükleme

  • PhotoRec : Bölüm tablosunu ve dosya sistemlerini kurtaramazsanız, hala bazı dosya verilerini kurtarabilirsiniz. Baştaki dosyalar, belki 1-1,5 GB, üzerine yazılır ve kaybolur, ancak sürücünün o kısmının arkasındaki dosyalar hala oradadır. Http://cgsecurity.org adresindeki PhotoRec, dosya sistemi olmadan 'sürücü yüzeyinden' verileri kurtarabilen bir araçtır. Genel dosya türlerinin başlangıcındaki tipik veriler tanımlama için kullanılır.

    Aşağıdaki bağlantı, PhotoRec’le ilgili ayrıntılı bilgi sağlar.

    https://www.cgsecurity.org/wiki/PhotoRec

    Dosyaları ayrı bir sürücüdeki bir bölüme kaydetmelisiniz.

    Dizin yapısını kurtarmak mümkün değildir ve genellikle dosya adlarını kurtarmak mümkün değildir (ve izinleri ve mülkiyeti değil) ve dosyalar parçalanırken sorun çıkarsa da, birçok dosya PhotoRec tarafından kurtarılabilir (yalnızca fotoğraflar, ayrıca birçok diğer ortak dosya türleri). Ancak, bu büyük bir şey ama gerçekten önemli dosyaların ne olduğunu tanımlamak için çok sayıda sıralanmamış dosyayı gözden geçirmek için çok fazla çaba sarf etmeniz gerekiyor, anlamlı dosya adlarını yeniden adlandırmanız gerekiyor.

Ubuntu ile USB önyükleme sürücüleri oluşturmak için daha güvenli araçlar

Gelecekte, lütfen doğru hedef cihazı tanımlamanıza ve seçmenize yardımcı olan ve son kontrol noktası olan bir araç kullanın, böylece iso dosyasından doğru hedef cihaza klonlayacağınızı iki kez kontrol edebilirsiniz.

  • Ubuntu'da: Ubuntu Başlangıç ​​Diski Oluşturucusu (Ubuntu 16.04 LTS ve daha yeni sürümlerde),
  • Linux'ta:

    • Disk takma adları gnome-disks,
    • mkusb ,
  • Windows'ta: Win32DiskImager .

Örneğin, son bir kontrol noktası sağlayan çıkarma araçlarını da kullanabilirsiniz.


1
cgsecurity'nin Testdisk'i için kefil olabilirim, geçmişte denediğim diğer alternatiflerden çok daha iyi çalışır, Testdisk'in faydalı bir şeyi kurtarmayı başaran tek kişi olduğu yerde. ama dikkatli olun, küçük sikiş varsayılan sürücüde kendi bölümünüzü kurtarmayı denemek için !! xx
hanshenrik

1
+1. Ayrıca kefil olabilirim testdisk. Ayrıca / sda / sdb / n'inize yazmaktan kaçınmak için bir sarmalayıcı komut dosyasıdd da iyi bir fikirdir.
WinEunuuchs2Unix

19

Senin tarafından ddkomuta, sen / dev / sda bölümleme tablosunu ve uzak image.iso büyüklüğü gider gibi tüm verileri üzerine yazıldı.

Bu yüzden elde edebileceğiniz en iyi şey, en azından / dev / sda'nın sonlarına doğru bölümleri kurtarmak için bölüm tablonuzu (tam boyutta) geri yüklemek.


1
Tam ebatların nasıl alınacağını bilmek istiyorsanız, bu cevabın ikinci paragrafına bakınız .
wizzwizz4

16

Bir yedekten geri yükleme kısa, tamamen kurtarmak için hiçbir yolu yoktur. DD, bölüm tablosuna ve cihaz verilerinin bir kısmına yazdı.


19
O zaman felaket kurtarma yedeklerimi atmalıyım sanırım.
stumblebee

23
@ Baaing İnek, elbette bir cevaptır ve elbette verileri kurtarmanın bir yolu yoktur. Verilerin üzerine yazarken bunun anlamı: gitmiş.
psusi

22
@ ChaiT.Rex Bu bir efsane gibi görünüyor, en azından son on yılda yapılan bir PC'de bulabileceğiniz herhangi bir cihazda.
David Schwartz

19
@ ChaiT.Rex Bu, yalnızca diskin yalnızca bir bölümünün silindiği, tamamen yazılmayan disklerde geçerlidir . Ancak, tüm diskin silinmiş veya üzerine yazılmış ise, veri kurtarma işlemi yoktur. Uzmanlar ya da değil.
Thomas Ward

8
@BaaingCow Verileri geri yüklemek için bir yol olması gerektiğini bildiğiniz için, lütfen bizi aydınlatın. Birçok kişi tekniğiniz için para ödemeye hazır olacak!
Tim

9

Sürücünüz ayrı /ve /homebölümlere ayrılırsa ve bölüm /homebölümün /sonundaysa, verilerinizi kurtarabilirsiniz. Çoğu bölümün bulunduğu MBR, üzerine yazılmıştır. Ancak, gparted /homebölümünüzü kurtarabilir .

Ubuntu Forumları bu yazı nasıl yapılacağı hakkında bazı fikirler verir; Ben "gparted recovery bölüm" için arama yaparak buldum.

Kayıp bölümünüzü bulduktan sonra (içinde genişletilmiş bir bölümün içinde olabilir), bunu bölüm tablosundaki tek bölüm olarak eklemelisiniz.

Bunu yaptıktan sonra, kurtarılan bölümü olduğu gibi tutmayı söyleyerek Linux'u yeniden yüklemeniz gerekir /home.


2

Kurtarmaya Testdisk

Ben şahsen kefilim testdisk ben defalarca kopyalama ve talimatlarını yapıştırarak sonra benim verilerini kurtardı /dev/sdbve değişen /dev/sddhangi benim USB oldu. Sadece bir defasında değiştirmeyi unuttum ve orada /dev/sdbçöp kutusuna girdi.

Sisteminizi asla yazmayacak şekilde kurun /dev/sda

Bir sarmalayıcı komut dosyası oluşturmanızı şiddetle tavsiye ederim: 'dd' nin SSD veya HDD'yi imha etmesini önleyin . Bu, ddhiçbir zaman /dev/sdaveya muhtemelen /dev/sdbveya herhangi bir başka toplu depolama aygıtınıza yazma yapılmamasını sağlar .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.