Bagaimana cara mengakses RAID 0 perangkat lunak Windows dengan benar?

12

Saya adalah pengguna Ubuntu baru dengan instalasi baru, dan saya ingin memulai dengan itu. Namun, semua data penting saya ada pada perangkat lunak RAID 0 array Windows, dan saya perlu untuk tetap di sana karena saya juga dual boot Windows. Saya memerlukan akses ke data ini di Ubuntu, dan tidak dapat benar-benar menyelesaikan sesuatu yang nyata sampai saya memiliki akses.

Saya telah meneliti subjek ini sebaik mungkin, dan saya berhasil menemukan posting yang sangat membantu:

Posting menjelaskan cara mendapatkan Ubuntu untuk melihat array Windows RAID 0 yang terdiri dari dua drive. Perintah utama yang digunakan adalah sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2. Menurut pengguna itu, dan poster lain di utas, itu benar-benar berfungsi. Itu keren.

Saya belum mencoba mengikuti instruksi ini. Mengapa? Posting menyertakan peringatan tentang bagaimana Anda tidak boleh menulis kepadanya jika Anda memasukkan ukuran chunk yang salah; Dapat dimengerti bagaimana hal itu dapat menyebabkan masalah. Kekhawatiran saya adalah bahwa pengaturan saya berbeda dengan contoh mereka, dan saya tidak yakin bahwa perintah harus dimasukkan sama persis dengan pengaturan saya. Saya takut melanggarnya dengan melakukan kesalahan, dan karena itu ingin mendapatkan saran dari seseorang yang lebih berpengalaman.

Inilah perbedaan pengaturan saya dengan contohnya:

  1. Saya memiliki tiga drive 1 TB, bukan dua drive (dengan ukuran apa pun yang mereka gunakan).
  2. Saya memiliki dua partisi RAID 0 yang tersebar di ketiga drive: satu 500 GB dan 2,3 TB. Ini berarti bahwa saya TIDAK perlu menggunakan disk penuh ketika membuat array RAID, tetapi hanya menggunakan sebagian saja.
  3. Saya menggunakan ukuran blok non-standar untuk setidaknya satu dari partisi RAID 0 saya ketika saya mengaturnya tahun lalu. Saya tidak tahu apakah ukuran blok ini sama dengan ukuran chunk yang mereka sebutkan. Partisi 500 GB saya memiliki ukuran blok 4 kb (4096 bytes per cluster), dan partisi 2,3 TB saya memiliki ukuran blok 64 kb (65536 bytes per cluster).

Output yang relevan dari sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(hanya untuk ketiga drive RAID0) adalah:

NAME   FSTYPE   SIZE MOUNTPOINT            LABEL
sdb           931.5G            
├─sdb1            1M            
├─sdb2          127M            
└─sdb3        931.4G            
sdc           931.5G            
├─sdc1            1M            
├─sdc2          127M            
└─sdc3        931.4G            
sdd           931.5G            
├─sdd1        166.7G            
└─sdd2        764.7G 

Output yang relevan dari cat /proc/partitions(hanya untuk ketiga drive RAID0) adalah:

8       16  976762584 sdb
8       17       1024 sdb1
8       18     130048 sdb2
8       19  976631478 sdb3
8       32  976762584 sdc
8       33       1024 sdc1
8       34     130048 sdc2
8       35  976631478 sdc3
8       48  976762584 sdd
8       49  174763008 sdd1
8       50  801865728 sdd2

Program "Disk" di Ubuntu menampilkan partisi berikut untuk drive saya:

/dev/sdb:   GUID Partition Table .
/dev/sdb1:  1.0 MB, Microsoft LDM metadata.
/dev/sdb2:  133 MB, Microsoft Reserved.
/dev/sdb3:  1.0 TB, Microsoft LDM data.
/dev/sdc:   GUID Partition Table partitioning.
/dev/sdc1:  1.0 MB, Microsoft LDM metadata.
/dev/sdc2:  133 MB, Microsoft Reserved.
/dev/sdc3:  1.0 TB, Microsoft LDM data.
/dev/sdd:   Master Boot Record partitioning.
/dev/sdd1:  179 GB, Unknown.
/dev/sdd2:  821 GB, Unknown.
/dev/sdd:   136 MB, Unallocated space.

Saya harap saya sudah memberikan informasi yang cukup di sini. Jadi sekarang, pertanyaan saya adalah ini: apa perintah yang tepat bagi saya untuk masuk dengan pengaturan saya, sehingga saya dapat mengakses kedua partisi Windows RAID 0 dari Ubuntu?

Terima kasih banyak sebelumnya.

Dan
sumber

Jawaban:

16

Saya akhirnya berhasil berkat posting Stack Overflow ini: restorasi Windows Spanned Disks (LDM) dengan Linux?

Sangat sulit untuk mengungkap informasi yang sulit dipahami ini. Butuh pencarian berhari-hari, dan saya rasa saya tidak menemukannya karena posting tidak menyebutkan RAID, jadi itu tidak muncul dalam hasil pencarian saya. Ini pasti berfungsi untuk RAID 0 perangkat lunak Windows saya.

Solusinya:

Solusinya sebenarnya cukup sederhana. Ada alat luar biasa yang dibangun khusus untuk tujuan ini, yang disebut ldmtool. Ia mampu membaca dan bekerja dengan disk dinamis Windows yang menggunakan LDM (Logical Disk Manager). Ini tidak diinstal secara default, tetapi termasuk dalam repositori Ubuntu. Yang harus saya lakukan adalah menjalankan dua perintah:

sudo apt-get install ldmtool
sudo ldmtool create all

Perintah pertama menginstal ldmtool, dan yang kedua membuatnya secara otomatis membuat pemetaan perangkat untuk semua disk dinamis Windows yang terhubung. Pemetaan ini terletak di /dev/mapper/dan dapat dipasang secara manual dengan mount -t ntfs /dev/mapper/mapfilename, tetapi saya tidak perlu melakukan itu - Ubuntu memasangnya untuk saya secara otomatis setelah saya menjalankan dua perintah di atas. Hanya itu yang harus saya lakukan, dan saya bisa langsung mengaksesnya dari file browser!

Posting tertaut menyertakan saran untuk melakukan ini secara otomatis setiap boot. Cukup buka file /etc/init/mountall.confdan tambahkan baris [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || truetepat sebelum exec mountall ...baris di dekat akhir file.

Penghargaan penuh untuk solusi ini diberikan kepada Christian Hudon, pria yang mempostingnya sebagai jawaban atas Stack Overflow. Terima kasih!

Untuk menambahkan beberapa informasi lebih lanjut ke ini, saya menggunakan beberapa ldmtoolperintah lain untuk menanyakan volume informasi saya:

sudo ldmtool scan /dev/sdd
[
  "e856a65f-e558-11e1-ae19-bc5ff435f790"
]

sudo ldmtool show diskgroup e856a65f-e558-11e1-ae19-bc5ff435f790
{
  "name" : "Dan-PC-Dg0",
  "guid" : "e856a65f-e558-11e1-ae19-bc5ff435f790",
  "volumes" : [
    "Volume1",
    "Volume2"
  ],
  "disks" : [
    "Disk1",
    "Disk2",
    "Disk3"
  ]
}

sudo ldmtool show volume e856a65f-e558-11e1-ae19-bc5ff435f790 Volume1
{
  "name" : "Volume1",
  "type" : "striped",
  "size" : 1048578048,
  "chunk-size" : 128,
  "hint" : "D:",
  "partitions" : [
    "Disk1-01",
    "Disk2-01",
    "Disk3-01"
  ]
}

sudo ldmtool show volume e856a65f-e558-11e1-ae19-bc5ff435f790 Volume2
{
  "name" : "Volume2",
  "type" : "striped",
  "size" : 4811194368,
  "chunk-size" : 128,
  "hint" : "E:",
  "partitions" : [
    "Disk1-02",
    "Disk2-02",
    "Disk3-02"
  ]
}

Tidak perlu menjalankan perintah di atas, seperti ldmtool create allhalnya semua pekerjaan yang diperlukan untuk membuat pemetaan. Saya hanya memasukkannya karena saya sudah memasukkan informasi tentang pengaturan saya dalam pertanyaan, jadi informasi ini mungkin berguna bagi siapa saja yang menemukan posting ini nanti. Secara khusus, kita dapat melihat bahwa menurut ldmtool, kedua volume dinamis saya menggunakan ukuran chunk 128, walaupun dibuat dengan ukuran blok yang berbeda di Windows. Saya kira ini berarti bahwa ukuran blok dan ukuran chunk bukan istilah yang identik. Perintah ldmtool show diskdan ldmtool show partitiondapat digunakan untuk menampilkan informasi lebih lanjut.

Dan
sumber
Solusi berumur 5 tahun masih bekerja di Ubuntu 18. Terima kasih.
Cris
2

Ubuntu 14.04 LTS mount raid 1 dibuat oleh windows 7 menggunakan ldmtool oleh newby. ** **

Saya memiliki masalah yang sama. Menggunakan jawaban di atas saya beruntung dan mendapatkannya dipasang

gksu gedit /etc/init/mountall.conf 

dengan mengubah garis

 [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || true

untuk

/bin/ldmtool create all >/dev/null || true

lalu ditambahkan

/bin/mount /dev/mapper/ldm_vol_NAME-Dg0_volume1 /media/WHEREVER

Mountall.conf saya terlihat seperti ini sekarang

     **fi
/usr/bin/ldmtool create all >/dev/null || true
/bin/mount -o rw /dev/mapper/ldm_vol_OCTO-CORE-Dg0_Volume1 /media/m
    exec mountall --daemon $force_fsck $fsck_fix $debug_arg
end script**

sebelumnya saya punya script untuk melakukan hal yang sama dengan 2 baris

/usr/bin/ldmtool create all >/dev/null || true

/bin/mount -o rw /dev/mapper/ldm_vol_OCTO-CORE-Dg0_Volume1 /media/m

dan ditambahkan

sh /home/ron/mirror to the end of /etc/rc.local 

sekarang sudah terpasang ketika ubuntu dimulai

Saya tidak tahu ini akan berhasil untuk Anda!

Ron Prickett
sumber
2

Jawaban yang lain hanya bekerja sebagian di Mint 18.3.

Memasang secara otomatis drive Raid0 sedikit lebih menantang karena pengeditan /etc/init/mountall.conftidak pernah berfungsi di sistem saya dan saya ingin dapat memasang volume yang direntang menggunakan definisi di /etc/fstab, dan tidak menggunakan skrip /etc/rc.local.

Jadi, inilah yang saya lakukan:

sudo apt-get install ldmtool

Diperiksa apakah volumenya dikenali dan dapat dipasang dengan benar dengan:

sudo ldmtool create all

Mengetahui bahwa sistem saya dapat melihat dan menulis ke drive. Saya membuat layanan (mengikuti petunjuk dari situs ini :( https://wiki.archlinux.org/index.php/Dynamic_Disks )

membuat file yang etc/systemd/system/dipanggil ldmtool.servicedengan deskripsi layanan:

[Unit]
Description=Windows Dynamic Disk Mount
Before=local-fs-pre.target
DefaultDependencies=no
[Service]
Type=simple
User=root
ExecStart=/usr/bin/ldmtool create all
[Install]
WantedBy=local-fs-pre.target

Untuk mengaktifkan layanan saat startup:

sudo systemctl is-enabled ldmtool

Untuk menemukan UUID volume yang digunakan:

sudo blkid

Yang memberi saya info berikut: /dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

Jadi saya membuat garis /etc/fstabbertuliskan:

UUID=0A281FC6281FAFA5 /media/6TB_Raid ntfs-3g  auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8  0  0

Volume ada setiap kali saya boot.

cegaton
sumber