Başka bir makinede mdadm raid 1'in parçası olan bir diske veri nasıl bağlanır / kurtarılır?


18

Bazı arka plan

  • Diskin kendisi bir arkadaş tarafından "üzerinde çalışıldı" ve hala sağlam, hasarsız ve hala monte edilebilir / kurtarılabilir olduğu söyleniyor
  • Disk, Ubuntu 12.04'teki bir yazılım baskınının 1 parçasıydı
  • Orijinal raid 1'deki diğer disk biçimlendirildi ve başka bir amaçla kullanıldı, mevcut disk (söz konusu disk) teknik olarak artık var olmayan bir baskının parçası olarak kaldı

Zaten denedim

  • Temel montaj

    • Fstab'a bir girdi ekledim, diski ext3 / ext4 olarak işaretledim ve takmaya çalıştım.
    • Montaj üzerine aşağıdaki hata görünür

      wrong fs type, bad option, bad superblock on

    • Ve dmesg'de

      EXT4-fs (sdc1): VFS: Can't find ext4 filesystem

  • Diskin dosya sistemi türünü bulmaya çalıştım ve

    $sudo file -s /dev/sdc
    /dev/sdc: x86 boot sector; partition 1: ID=0x83, starthead 254, startsector 63, 1953520002 sectors, code offset 0xb8

Yardıma ihtiyacım olan yerler / Sorularım

  • Verilere zarar vermeden diski ext4'e dönüştürmenin bir yolu var mı?
  • Linux 83 dosya tipi diski takmanın ve verileri kurtarmanın basit bir yolu var mı?
  • Bir şekilde baskını yeniden oluşturmak için bir olasılık varsa şu anda ücretsiz başka bir disk var
  • Ana amacım verileri diskten kurtarmak. Tüm seçeneklere açığım.

Güncelleme

Bazı komutların çıktıları

  • fdisk -l / dev / sdc

    $fdisk -l /dev/sdc

    Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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: 0x0005ed9c

    Device Boot Start End Blocks Id System
    /dev/sdc1 63 1953520064 976760001 83 Linux

  • dosya -s / dev / sdc1

    $file -s /dev/sdc1
    /dev/sdc1: data

  • hexdump -C -n 32256 / dev / sdc (Bunun yardımcı olup olmayacağından emin değilim)

    $hexdump -C -n 32256 /dev/sdc`
    00000000  fa b8 00 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |................|
    00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
    00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
    00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
    00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
    00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    000001b0  00 00 00 00 00 00 00 00  9c ed 05 00 00 00 00 fe  |................|
    000001c0  ff ff 83 fe ff ff 3f 00  00 00 82 59 70 74 00 00  |......?....Ypt..|
    000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
    00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00007e00
    

Sorun, bölümün bir ext4fs değil, üzerinde bazı baskın hacmi olduğunu düşünmesidir. Ve çekirdek haklı. Ancak baskın 1 olduğu için ext4fs olur. Bir mount -f ext4 /dev/sdc1 /mountpointhile yapmak gerekir. Dağı bir dosya sistemi aramak yerine ext4 varsaymaya zorlamak için -f ne yapar
Bananguin

1
Zorla bağlama herhangi bir hata vermez, ancak bağlama noktası boştur. Veriler gitti veya bağlantı beklendiği gibi çalışmadı. Bunu yapmak dfbana yeni takılan diskin kullanımda% 2 olduğunu ve bu da beklenenden önemli ölçüde düşük olduğunu gösteriyor.
Adam

@ user1129682, mount ext4 olmadığını söylüyorsa, ... zorlamaya çalışmak yardımcı olmayacaktır.
psusi

@psusi: benim için çalıştı. Gilles cevap neden bazı koşullarda çalıştığını
açıklıyor

Bunu mu demek istediniz mount -t ext4? -F bayrağı 'sahte' montaj içindir (Ubuntu 14.04).
Quantum7

Yanıtlar:


13

Bu Ubuntu 14.04'te mükemmel çalışıyor:

sudo -i
mdadm --assemble --scan

Alacaksın:

mdadm: /dev/md/1 has been started with 1 drive (out of 2)

Ardından dosyalarınızı bağlayın ve görün:

cd /mnt && mkdir to-restore-md1 && mount /dev/md1 to-restore-md1
ls -la to-restore-md1

Bir dizi parçası olan başarısız bir sabit diskte "var ama bir md dizi değil" alıyordum ... ve bu diğer tüm önerileri daha iyi çalıştı. Başarıyla bağlandı, şu anda verileri kopyalamakla meşgul.
Zayne S Halsall

bu seçenek benim için iyi çalıştı. RAID1'de 2 Intel SSD. Birini çekti ve suse linux çalıştıran pc'ye SATA portunu kullandı. Başlangıçta sadece /dev/sdcve olarak görünür /dev/md127. Sonra vermedi mdadm --assemble --scansonuçlanan /dev/md/Volume0_0p1ve /dev/md/Volume0_0p2ve böylece disk üzerinde idi 4 bölümleri tekabül üzerinde. P2 ihtiyacım olan buydu : mkdir /p2 bunu mount /dev/md/Volume0_0p2 /p2EXT3 olan monte etti ve kolayca verilere erişebilir ve kopyalayabilirim. Ayrıca okuma-yazma olarak monte etti.
ron

günümü gün ettin! Teşekkürler!
Gooshan

bazen --scanmod eksik disklerle dizileri başlatmaz, benim durumumda burada otomatik olarak bir araya getirilmiş diziyi durdurup tekrar başlatmak zorunda mdadm --assemble --force /dev/md/1 /dev/sdc1
kaldım

7

Linux mdraid'in çeşitli meta veri formatları vardır . 0.9 ve 1.0 formatları meta verileri içeren cihazın sonuna yerleştirir ve yük (dosya sistemi) cihazın başında başlar ve raid katmanından geçmeden doğrudan erişilebilir. 1.1 ve 1.2 formatları meta verileri sırasıyla içerdiği cihazın ortasına ve başına koyar, böylece yük bir ofset olur.

Ubuntu yükleyicisi 1.2 meta veri biçimiyle birimler oluşturur, böylece verileriniz cihazın başında değil meta verilerden sonra başlar.

Bu verilere erişmenin en basit yolu, baskın cihazını monte etmektir. RAID-1 biriminde tek bir aygıt yeterlidir.

madadm -A /dev/sdc1

(Acı sevmediğiniz sürece burada durun.)

Verilere bir ofsetten de erişebilirsiniz. Bunu yapmak için görebildiğim tek nokta, 1.x mdraid formatlarını desteklemeyen çok eski bir çekirdekte çalışmak zorundaysanız. İlk olarak, ofseti belirleyin mdadm -E /dev/sdc1: çizgiyi arayın Data Offset : SSS sectors. Bir mdadm sektörü 512 bayttır.

sectors=$(mdadm -E /dev/sdc1 | awk -F: '$1 ~ /Data offset/ {print $2}')
bytes=$(($sectors * 512))
losetup -f -o $bytes /dev/sdc1

Çaresizlik içinde, 1.x formatları ile, veri ofseti, küçük-endian¹ meta verilerinin 128-135 baytında saklanır. 1.2 meta veriler cihazın başlamasından sonra 4096 bayttır.

Ayrıca, daha ileri başlamak için bölüm tablosunu değiştirebilirsiniz. Aritmetiğinize çok dikkat edin. Bunu, ancak baskın aygıtına erişemeyen eski bir sistemde diski uzun süre kullanmaya devam etmek istiyorsanız yapın.

¹ Ya platformu endian ile? Emin değilim.


4 mdadm -E /dev/sdc1k tam olarak meta verilerin depolandığı yer olduğundan, veriler farklı ofsetlerde ( tam olarak nereye bakın) başlayabilir, ancak 1,2 meta veri için kesinlikle 4k değerinde başlayamaz . Ayrıca bkz. Unix.stackexchange.com/q/57477/22565
Stéphane Chazelas

@StephaneChazelas Hata! Evet, beyin osuruğu. Teşekkürler.
Gilles 'SO- kötü olmayı bırak'

3
mdadm -A /dev/sdc1çıkışlar mdadm: device /dev/sdc1 exists but is not an md array.ben kullanım mdadm için biraz daha gitmiş ve herhangi bir ek bilgi varsa ... bkz ettik mdadm --misc --examine /dev/sdc1çıkışları mdadm: No md superblock detected on /dev/sdc1.. RAID montajı için kullanılabilir bir disk olarak işaretlemek üzere bu diskteki süper blokları yeniden yazabilmemin bir yolu var mı?
Adam

@Gilles A mdadm -E /dev/sdcbenim için aşağıdakileri döndürür: /dev/sdc: MBR Magic : aa55 Partition[0] : 1953520002 sectors at 63 (type 83) ama / dev / sdc1 için bilgi yok
Adam

1
@Adam Eğer mdadm meta verilerini bulamazsa burada yapabileceğiniz hiçbir şey yoktur: ne yapacağını bilmediği için bir şey yapmaya zorlayamazsınız. Bir dosya sistemi aramalısınız ve psusi'nin tavsiyesi hiçbir yere götürmezse, görünüm kasvetli olur. Belki de diskin ilk birkaç kilobaytlık bir heksisi birisine ilham verebilir (bazı gizli verileri açığa çıkarabileceğine dikkat edin).
Gilles 'SO- kötü olmayı kes

5

Şaşırtıcı bir şekilde, sadece en başta kullanarak verileri kurtarabildim .

Burada alınan yardım paha biçilmezdi. Önerilen kombinasyonların yanı sıra kendi karışımlarımı denedikten sonra, ideal yöntem (diski normal olarak takmak ve kullanmak için) artık bir seçenek gibi görünmüyordu. Bu durumda veri kurtarmaya başvurmak benim çözümüm.


Bunun bir süre önce olduğunun farkındayım! Ancak, bölümü monte etmeden en başta kullanıp kullanamayacağınızı hatırlıyor musunuz?
PhillipOReilly

Üzgünüm, bunun ayrıntılarını artık hatırlamıyorum. : /
Adam

3

Görünüşe göre zaten mdadm süper blok zapped. Eskiden oradaysa ve 1.1 veya 1.2 biçimindeyse, büyük olasılıkla dosya sistemi 2048 sektörünü dengelemektedir. Bu e2fsck /dev/sdc1?offset=2048dengelemeden başlayarak dosya sistemini aramaya zorlamak için çalıştırabilirsiniz . Bulursa, bölümleme tablonuzu, dosya sisteminin gerçekte nerede başladığını gösterecek şekilde değiştirebilirsiniz. Sen kullanabilirsiniz parted /dev/sdcve unit skomut sektörlerin birimlerini kullanmak. printtabloyu, başlangıç ​​ve bitiş sektörünü, ardından rmbölümü not edin , ardından yeniden oluşturun mkpartve aynı son sektörü kullanın, ancak başlangıç ​​sektörüne ofseti ekleyin.

2048 işe yaramazsa, 1985'i de deneyebilirsiniz.


Çalıştırma e2fsck /dev/sdc1?offset=2048(Ayrıca = 1985 ofset ran) çıktı olarak Bad magic number..Superblock invalid...süper bozmak olduğunu düşündürmektedir ve alternatif bir süperbloklu e2fsck'nin çalıştırmak için çalışan gibi. İlerlemek için alternatif bir süper blok sağlamam gerekiyor gibi görünüyor.
Adam

@Adam, hayır, sadece doğru ofseti almanız gerekiyor. testdiskayrıntılı bir tarama yapabilmeli ve bölüm tablosunu sizin için düzeltebilmelidir.
psusi

testdiskbenim için tamamen yeni bir bölge. Temel bir çalışma (Analiz) gösterisi No ext2, JFS, Reiser.. marker. Bad relative sector. No partition is bootable.Ayrıca aşağıdakileri de sağlar: 1 P Linux 0 1 1 121600 254 63 1953520002Duruma yardımcı olmak için bunu nasıl anlayabilirim?
Adam

@Adam, daha önce hiç kullanmadım, süperbloğu tarayabilmesi ve bulabilmesi gerektiğini biliyorum. Diskte değil, tüm diskte çalıştırdınız mı?
psusi

Tam disk üzerinde bir analiz çalıştırdıktan sonra, bölüm oluşturmadı. Şu anda derin bir tarama yapıyor. Bu bir şey ortaya çıkarmazsa, buradan nereye gideceğimi bilmiyorum.
Adam
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.