なーたのおぼえがき

なーたのおぼえがき

つくったものとか

ディスクタイプとボリューム

もう夏休みが終わってしまう...。といいつつ三分の二が過ぎたくらいですが。
最近推理小説読みなおしするのが楽しい。特にエラリー・クイーンの国名シリーズ読むの楽しすぎる。国名シリーズはすべての手がかりが提示された後、解決編があるから自分で推理が楽しめる。途中で突然解決編が来たりしないし、何より名探偵コナンとかである「これは...?!」とかそういうのはほぼないので。登場人物の描写でなんとなくうん?ってなるところはあるけど。
さて閑話休題。今日はボリュームとディスクタイプのお話。確か前回のやつ(ブートセクタとパーティション)の中で説明しようとしたらバカみたいに長くなったから切り離して追記したやつ。ではいってみよー

ディスクの種類

ディスクには

という2種がある。物理的に違うんじゃなくて形式なのでフォーマット的な問題ね。
ざっくりいうとダイナミックディスクWindows専用でベーシックディスクは他でも使えるディスクです。

ボリュームとは?

まずは全体にかかわるボリュームの説明から。
Q:そもそもボリュームって何ぞや?
A:外部記憶装置の単位。もしくはパーティションの中の領域のこと。
以上。というのは冗談です。あまりにも雑。
ボリュームというのは「コンピュータから見た外部記憶装置の単位」で「ファイルシステムを含む1つの領域」のこと。
コンピュータから見た外部記憶装置の単位だからパーティションがなくてもボリュームは存在し得る。例えばフロッピーディスク(略称:FD。なんじゃそらという人は調べてね)。あれはパーティションを切れないけど、その記憶領域はボリュームとして成立している。
MBRパーティションテーブルは存在しなくて、いきなりファイルシステムから始まる形式になってるよ。MO(光磁気ディスク。Magneto-Optical disk/disc)をFDとして使えるようにするみたいなこともできるらしい。

ちなみにですがdiskとdiscの使い分けが一応あって、

disk はフロッピーディスク、コンピュータのハードドライブ内のディスク、外部ハードドライブなどの磁気メディアを指します。
disc は、オーディオ CD、CD-ROM、DVD-ROM、DVD-RAM、DVD-Video ディスクなどの光学式メディアを指します。
「disc」と「disk」の違い - Apple サポート

この区切りで言うとSSDが消え去る(半導体だから)けど、大抵disk側に入ってるかな。
あといるかわかんないけど「ディスクとドライブって一緒では?」と思ってる人。
ディスクっていうのは物理的なもの(ハードディスクとかUSBフラッシュメモリとか)でそれ自体が一つの記憶装置であるものを指すけど、ドライブは「論理的なもの」正確にはファイルシステムの入った領域を指すよ。普通にPCを使う時にファイルやフォルダを操作するのに使うのはドライブ。データ復旧するときにツールで復元できるのは論理障害でこれはドライブが対象。それ以外だとデバイスドライバ不調とかそもそも物理ドライブが読み込めなかったとかそういう物理障害。論理的な障害だからソフトで修復できるってことですね。

閑話休題

パーティション切った領域、ドライブって呼ばない?」って思ったら大正解(正解ではないが)。思ってなくても知らんけど。
ドライブとボリューム、実はほとんど同じ意味で使われがちな言葉だったりする。
ドライブはボリュームやメディアにアクセスして読み書きする装置のこと。
ハードディスクドライブ(HDD)はハードディスクっていうメディア(記憶装置)にアクセスするための機械で、CDドライブはコンパクトディスク(CD)にアクセスするための機械。
ハードディスクってCDみたいに分かれてないのは基本的に読み書きする部分と本体が一緒になってる。だからこそハードディスクドライブって名称で定着してる。
例えばブートセクタとパーティションでもMBRの項目で論理ドライブって書いてるよね。あれは実態(ハードウェア)ではなくソフトウェア的なドライブのことでその中の領域がボリュームって感じ。実態がないからわかりにくいけど。
Cドライブは「ドライブレターC:が割り当てられたボリューム」を読み書きするためのもの。なんでボリュームなのにドライブレターなの?という疑問はあるけど答える知識持ってないので知ってたら教えてください。
ちなみに「Windows(C:)」とか「ローカルディスク(C:)」、ボリュームラベルが「Windows」「ローカルディスク」でドライブレターが「C:」です。ややこしいって?すごくよくわかる。

ということでボリュームについてはこの辺でおしまい。次はディスクタイプについて

ベーシックディスク

昔からあるやつ。最初は名前付いてなかったけどダイナミックディスクが出たからそれに伴ってベーシックディスクになった。LinuxWindowsをはじめとする多くのOSに対応してて、マルチブート(複数OSを同じディスクから起動させること)ができる。
ブートセクタとパーティションでかいたMBR(Master Boot Record)かGPT(Guide Partition Table)かによって管理できるパーティション及びボリュームの個数、容量が変化する。ほとんどこれのはず。いつでもダイナミックディスクに変換できる。

ボリューム

ベーシックディスクのボリュームレイアウト(ディスクのボリューム配置のこと)はシンプルボリュームが基本です。
シンプルボリュームとはディスクを跨がらないボリューム配置のこと。一つのディスクをパーティション分割して複数のボリュームを作成したり、パーティションを一つのまま分割しないで1ディスク1ボリュームで使用したりできるよ。ただし、パーティションを跨いでボリュームを作成することはできない。
f:id:Clairdeluna_eve:20190825001749p:plain
こんな感じでパーティションを三つに分割してC,D,Cって割り当てるのは(ボリュームを拡張することは)できない。
MBR形式でベーシックディスクをフォーマットした場合、パーティションは4つまで。だからすべてをプライマリパーティションにしたら最大4つ、4つ目を拡張パーティションにした場合は5つ以上ボリュームを作れる。
f:id:Clairdeluna_eve:20190825005614p:plain
こんな感じ。
GPTだと128までパーティション分割できるから128のボリューム?かな?

ダイナミックディスク

Windows2000から追加されたWindows独自のディスク形式で、ベーシックディスクとの互換性はない。ベーシックディスクよりも高性能。実はそんなに使われてないっぽい(観測範囲では)?
パーティションは一つであり、その中をボリュームで論理的に切り分けることによって管理する。

特徴は

  • ボリュームレイアウトが独特
  • ソフトウェアRAIDができる
  • マルチブート非対応
  • Windows専用
  • ベーシックディスクと互換性がない

ボリューム

ベーシックディスクと違ってダイナミックディスクにはボリュームの種類が5つ。

  • シンプルボリューム
  • スパンボリューム
  • ストライプボリューム
  • ミラーボリューム
  • RAID-5ボリューム
シンプルボリューム

これはベーシックディスクとほとんど変わらないけどこんな感じ。
f:id:Clairdeluna_eve:20190825170011p:plain
相違点はパーティションが存在しないこと、別ボリュームを跨いで構成することもできることくらいかな。

スパンボリューム

2台以上のディスク(物理装置)上の未割当領域(ボリュームにもパーティションにもなっていない空白の領域のこと)を一つのボリュームとして結合することによってすごい容量の大きいボリュームとして稼働させるもの。結合するディスク容量が違ってもOK。最大で確か32台まで扱える。別のボリュームを跨いでボリュームを構成することも可能。
こんな感じ。
f:id:Clairdeluna_eve:20190825191714p:plain
ただしデメリットが強くてあんまり使えない。なんとこの方式、障害耐性がない。どんなに広大な容量を扱っていてもボリュームの中でどこか一か所に障害が発生すると、障害が発生したボリューム全体が使えなくなります。びっくり。つまり32台結合して1台でも物理ディスクが故障した(読み込めなくなった)ら32台ぜーんぶ使えなくなるっていう恐怖の装置。こわい。

ストライプボリューム

これはRAID-0(ストライピング)と同じ。
RAIDっていうのは複数のHDDを一つのドライブのように認識させる技術。これによって大容量化や信頼性、冗長性の確保ができる。RAIDについてはそのうちまとめたい。
各ディスクのサイズは違ってもいいけど、割り当てる領域は同じにする必要がある。なんでかというとストライピングは一定のサイズに分割したデータを複数ディスクに分散して書き込む形式だから。
こんな感じ。
f:id:Clairdeluna_eve:20190825215407p:plain
データの転送速度が速くて利用効率がいい反面、可用性(システムが継続して稼働できる能力)が低く故障しやすい。最小構成がディスク2つなので、(ディスクが増えれば増えるほど一つ故障したときに壊れるから)故障する確率が上がる。

ミラーボリューム

RAID-1(ミラーリング)と同じ。
これも割り当て容量は同じにしなきゃいけない。
f:id:Clairdeluna_eve:20190825215407p:plain
ストライピングと違って同じデータを二つに書き込むことで冗長性と障害耐性を高めてる。その代わり2つ分の容量に1つ分のデータしか書き込めないから利用効率が悪い。でも片方壊れてもデータが残るよ。Server系のWindows OSとWindows7Professional/Enterprise/Ultimateで使える。

RAID-5ボリューム

名前でわかると思うけどRAID-5(パリティレイド)と同じ。
書き込むときにパリティと呼ばれるデータを作って一緒に書き込むことで高速性、冗長性、容量の拡張性を実現してるよ。実際に使用できるのはディスク本数-1の容量。
f:id:Clairdeluna_eve:20190825233632p:plain
読み出し速度が高速で、台数が増えるほど利用率も上がる。ただ、書き込み時にパリティを作成するので書き込み速度は遅い。障害耐性は高くて故障したディスクを交換してパリティからデータを再構成することができる。でも導入コストが最低構成がディスク3台からなので他と比べて高い。あと、システムボリュームやブートボリュームに使用することができないのでそこが死んだら意味がない。Server系のWindows OSでのみ使える。

ということでボリュームの説明はおしまい!
続いて「ソフトウェアRAIDができる」について。

ソフトウェアRAID

RAIDが大容量化とか冗長性確保、信頼性向上の技術っていうのはさらっと上で書いたけど、実はこれには種類があって。題でわかるかもしれないけど「ハードウェアRAID」と「ソフトウェアRAID」の二つ。

ソフトウェアRAID

OSなどのソフトウェアが複数ディスクをまとめて管理するもの。LinuxだとMD(Multiple Devices)とか。特別なハードウェアがいらないため導入コストが低い反面、CPUリソースを使用するためシステム全体に負荷がかかること、OSが制御するため起動ディスクとして設定することができないなど割と問題があったりする。最近のOSでは標準搭載になってるから簡単にできるよ。

ハードウェアRAID

SCSI(Small Computer System Interface。読みはすもーるこんぴゅーたしすてむいんたふぇーす。通称:スカジー。ハードウェア間のインタフェースの一種)などを使用してハードウェア的にハードディスクを束ねる方法。マザーボードとディスクの間にRAIDコントローラっていうのが入る。ディスクアレイもハードウェアRAIDの一種?だよ。ソフトウェアRAIDと違ってシステム側からは単体のディスクにしか見えないため起動ディスクとして使用できる。そしてCPUやOSのふるまいに影響がない。ただし導入コストが高い。そして最新のCPUとかだとソフトウェアRAIDのほうが性能高かった、なんてこともある。サーバ構築だとこっちが一般的かな?

なんとなくわかったと思うけど、ダイナミックディスクはボリューム構成によってソフトウェアRAIDを実現しているよ。

マルチブート非対応

OSはドライブやボリュームではなくパーティションに入るもの。そのためベーシックディスクと違ってパーティションが一つしかないダイナミックディスクでは一つしかOSを入れることができないよ。

Windows専用

そもそもダイナミックディスクMicroSoftとVeritas Softwareによって作られたWindowsのディスク管理方式の一つ。MicroSoftを全力で推してたのはWindows2000の時だけじゃないかな…?そして今広く使われていないことからわかるようにスタンダードなものではなく、ほかのOSは普通に対応していません。といいたいところなんだけど、Idmtoolというものがあってね?これを入れるとマウントできるようになる。前はリードオンリーだったみたいだけどNTFS(ファイルシステム)に対応してたら普通に読み書き可能。

ベーシックディスクと互換性がない

ベーシックディスクと互換性がない、というのはパーティション管理が違うから。
基本的にハードディスク予約領域(最後の1MB)に論理ディスクマネージャデータベースを作成してシステムのディスク構成を保持する。一応、MBRやGPTを使うこともできる、らしい。
MBRを使用する場合は大きな一つのパーティションがデータを保持して、メタデータは終端に。
GPTを使用する場合は小さなパーティションが作られてそこにメタデータが、それ以外の領域を一つの巨大パーティションにしてデータを保持という形になる。
まあそもそも、相互変換無理という大問題が。ベーシックディスクからダイナミックディスクに変換するときはデータを残して変換することが可能だったりしますが、残念なことに逆はすべて吹っ飛ぶという鬼畜仕様。
ちなみにディスク系のツール全般、OSバックアップソフト、パーティション管理ツール、マルチブートソフト、CDから起動するメンテナンスツールなどなど結構な数のソフトがダイナミックディスク非対応。壊れたときにメンテナンスできないなんてことも起こりうる。

確認方法

「ディスク管理」で自分のPCのディスク種を確認することができるよ。

Windows XP

[コントロールパネル]⇨[パフォーマンスとメンテナンス]⇨[管理ツール]⇨[コンピュータの管理]ウィンドウが起動⇨左側のツリー[記憶域]の中の[ディスク管理]

Windows Vista/7

[スタート]の中の[コンピュータ]を右クリック⇨[管理]⇨[ユーザアカウントの制御]は続行/はいをクリック⇨[コンピュータの管理]ウィンドウが起動⇨左側のツリー[記憶域]の中の[ディスク管理]

Windows 8/8.1/RT

デスクトップ画面とModern UI(アプリアイコンが並んでいるやつ)で変わります。1はどっちでも、2はデスクトップ画面のみの操作。
1.[Windowsキー]+[X]⇨出てきたメニューから[ディスク管理]
2.Cherm(チャーム:横から出てくる電源や設定のメニュー)の設定⇨[コントロールパネル]⇨[システムとセキュリティ]⇨[管理ツール]の[ハードディスク パーティションの作成とフォーマット]

Windows10

[Windowsキー]+[X]もしくは左下の[Windowsアイコン]を右クリック⇨出てきたメニューから[ディスク管理]

共通?

[Windowsキー]+[R]もしくは左下の[Windowsアイコン]を右クリックで[ファイル名を指定して実行]⇨ダイアログに[diskmgmt.msc]を入力⇨[Enter]

XPより前は手元にないので自力で調べてやってね。

ディスク変換

ベーシックディスクからダイナミックディスクへの変換はデータを保持したままいつでもすることが可能です。確かWindows2000だと外付け付けたときに変換しますか?ってすぐきかれたはず。それ以外はこんな感じ。

上で確認するときに出したディスク管理で[ディスク0]や[ディスク1]を右クリック
f:id:Clairdeluna_eve:20190826144239p:plain
出てくるメニューに[ダイナミックディスクに変換(C)]があるのでクリック。ダイアログで出てくるディスクをチェックしたら[OK]。
f:id:Clairdeluna_eve:20190826144720p:plain
再度確認して変換を押すと、変換されます。若干時間かかるけど。

逆にダイナミックディスクからベーシックディスクに変換する場合、データは全部消し飛ぶ。
手順は
docs.microsoft.com

消し飛ぶって言ったけど、「結果的にデータ残したままダイナミックディスクからベーシックディスクに変換する」のならいけるんじゃね?って思っている方法が一つ。
でもこの方法どうなるかわかんないし、たぶん条件あるんじゃないかな。ダイナミックディスクになってから作ったボリュームは形式違うから復元できないとか。ベーシックディスクから変換したときにあったデータは元がパーティションだからいけそうじゃない?
で、TestDiskを知っているかい?
www.cgsecurity.org
これを見ていただけるとわかると思うんだけど、できることに「パーティションテーブルを復元し、削除されたパーティションを復元する」というのがある。
だから、ダイナミックディスクのボリュームをすべて削除してすべて未割当にしたらたぶんベーシックディスクに変換できるようになるはず。
そして変換した後って、たぶんベーシックディスクの全領域未割当ができるはず。そしたらTestDiskでQuick Searchして削除したボリューム(パーティション)を検出できるはずなんだよね。検出されれば復元できるはずだから復元すると「結果的にデータが保持されて」変換できるんじゃないかと。まあ復元されたときになんか問題あるかもしれないけど。
考えられるのだとドライブレターがなくて表示されないとか。

というわけで今回はここまで。ながーくなってしまった。