web-dev-qa-db-ja.com

WindowsソフトウェアRAID 0に正しくアクセスするにはどうすればよいですか?

私は新規インストールのUbuntuユーザーであり、使い始めたいと思っています。しかし、私の重要なデータはすべてWindowsソフトウェアRAID 0アレイ上にあり、Windowsをデュアルブートしているのでそこにとどまる必要があります。 Ubuntuでこのデータにアクセスする必要がありますが、実際にアクセスできるようになるまで何もできません。

私はすでにこのテーマについてできる限り研究しており、非常に役立つ投稿を見つけることができました。

この投稿では、2台のドライブで構成されるWindows RAID 0アレイをUbuntuに表示させる方法について説明しています。使用される主なコマンドはSudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2です。そのユーザーとスレッド内の他のポスターによると、実際に動作します。それは素晴らしいことです。

これらの指示に従ったことはまだありません。なぜですか?投稿には、間違ったチャンクサイズを入力した場合に書き込みを禁止する方法に関する警告が含まれています。それがどのように問題を引き起こすかは理解できます。私の懸念は、私のセットアップが彼らの例と異なることであり、コマンドが私のセットアップとまったく同じように入力されるべきかどうかはわかりません。 間違ったことをすることでそれを壊すのが怖いので、より経験豊富な誰かのアドバイスを受けたいと思っています。

これは私のセットアップが彼らの例とどのように異なるかです:

  1. 私はthree1 TBドライブを使用していますが、2台のドライブ(使用したサイズにかかわらず)はありません。
  2. 私はtwoRAID 0パーティションをこれらの3つのドライブに分散しています:1つの500 GBと2.3 TB。つまり、RAIDアレイを作成するときにディスク全体を使用する必要はなく、代わりにディスクの一部のみを使用する必要があります。
  3. 何年も前にセットアップしたときに、RAID 0パーティションの少なくとも1つにデフォルト以外のブロックサイズを使用しました。このブロックサイズが、言及されているチャンクサイズと同じであるかどうかはわかりません。 500 GBのパーティションのブロックサイズは4 kb(クラスターあたり4096バイト)で、2.3 TBパーティションのブロックサイズは64 kb(クラスターあたり65536バイト)です。

Sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(これら3つのRAID0ドライブのみ)からの関連する出力は次のとおりです。

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 

cat /proc/partitions(これら3つのRAID0ドライブのみ)からの関連する出力は次のとおりです。

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

Ubuntuの「ディスク」プログラムには、ドライブの次のパーティションが表示されます。

/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.

ここで十分な情報を提供していただければ幸いです。だから今、私の質問は次のとおりです。UbuntuからWindows RAID 0パーティションの両方にアクセスできるように、セットアップで入力する適切なコマンドは何ですか?

事前にどうもありがとうございました。

10
Dan

このStack Overflowの投稿のおかげで、ようやくこれが機能するようになりました。 LinuxでのWindows Spanned Disks(LDM)の復元?

このとらえどころのない情報を明らかにすることは非常に困難でした。検索には何日もかかりましたが、記事ではRAIDに言及していないため、検索できなかったので、検索結果に表示されませんでした。ただし、私のWindowsソフトウェアRAID 0でも確実に機能します。

解決策:

ソリューションは実際には非常に簡単です。 ldmtoolと呼ばれるこの目的のために特別に構築された素晴らしいツールがあります。 LDM(Logical Disk Manager)を使用するWindowsダイナミックディスクの読み取りと操作が可能です。デフォルトではインストールされませんが、Ubuntuリポジトリに含まれています。私がしなければならなかったのは、2つのコマンドを実行することだけでした。

Sudo apt-get install ldmtool
Sudo ldmtool create all

最初のコマンドはldmtoolをインストールし、2番目のコマンドは接続されたすべてのWindowsダイナミックディスクのデバイスマッピングを自動的に作成します。これらのマッピングは/dev/mapper/にあり、mount -t ntfs /dev/mapper/mapfilenameで手動でマウントできますが、その必要はありませんでした。上記の2つのコマンドを実行した後、Ubuntuは自動的にマウントしました。それが私がしなければならなかったすべてであり、私はすぐにファイルブラウザからそれらにアクセスできました!

リンクされた投稿には、これをブートごとに自動的に行うための提案が含まれています。ファイル/etc/init/mountall.confを開いて、ファイルの終わり近くの[ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || true行の直前にexec mountall ...行を追加します。

このソリューションの完全な功績は、それをStack Overflowの回答として投稿したChristian Hudonにあります。ありがとう!

これにさらに情報を追加するために、他のldmtoolコマンドを使用して、ボリュームの情報を照会しました。

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"
  ]
}

ldmtool create allはマッピングを作成するために必要なすべての作業を行うため、上記のコマンドを実行する必要はありません。私は既に質問に自分の設定に関する情報を含めているので、それらを含めました。この情報は、後でこの投稿に出くわした人にとって役立つかもしれません。特に、ldmtoolによれば、Windowsで異なるブロックサイズで作成されているにもかかわらず、両方のダイナミックボリュームが128のチャンクサイズを使用していることがわかります。これは、ブロックサイズとチャンクサイズが同義語ではないことを意味すると思います。コマンドldmtool show diskおよびldmtool show partitionを使用して、詳細情報を表示できます。

12
Dan

Ubuntu 7.04 LTSマウントRAID 1は、newbyによってldmtoolを使用してWindows 7によって作成されました。** **

同じ問題がありました。上記の答えを使用して、私は運が良かったし、それを搭載しました

gksu gedit /etc/init/mountall.conf 

行を変更することにより

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

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

その後追加

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

私のmountall.confは今このように見えます

     **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**

以前は、2行で同じことを行うスクリプトがありました

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

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

そして追加

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

今ではubuntuの起動時にマウントされます

これがあなたのために働くことを私は知りません!

2
Ron Prickett

その他の回答は、Mint 18.3で部分的にしか機能しませんでした。

Raid0ドライブの自動マウントは、/etc/init/mountall.confの編集がシステムで機能しなかったため、/etc/fstabの定義を使用してスパンボリュームをマウントし、 /etc/rc.local

だからここに私がやったことがあります:

Sudo apt-get install ldmtool

ボリュームが認識され、以下を使用して正しくマウントできることを確認しました。

Sudo ldmtool create all

私のシステムがドライブを表示および書き込みできることを知っている。私はserviceを作成しました(このサイトからの指示に従います:( https://wiki.archlinux.org/index.php/Dynamic_Disks

サービスの説明を含むetc/systemd/system/というファイルをldmtool.serviceという名前で作成しました。

[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

起動時にサービスを有効にするには:

Sudo systemctl is-enabled ldmtool

使用されているボリュームのUUIDを見つけるには:

Sudo blkid

次の情報が得られました:/dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

そこで、/etc/fstabに次の行を作成しました。

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

ボリュームは起動するたびに存在します。

2
cegaton