- ベストアンサー
Linux上からWindowsのパーティションを参照する方法
- Linux上からWindowsのパーティションを参照する方法とは?
- LinuxからWindowsのハードディスクを参照する方法についての質問です。
- LinuxとWindowsをデュアルブート環境で使う際、WindowsのパーティションをLinuxから参照する方法を知りたい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> ただHDD自体にのっているWindowsは起動するのが不思議なところです > パーティションテーブルが直ればうまくいきそうな気がします 環境が全く記載されていないため、上記の記載されていることが当方には理解できません。 パソコンのメーカー、型番が不明なため、Windowsの何が入っているのか不明。 160GBのHDDは、内蔵HDDのことを言われているのか、その他に、内蔵HDD、外付けUSB接続HDD等も接続されているのか、fdisk -lでどのような内容が出力されたのか不明。 基本的には、内蔵HDDのトップに、パーティションとは独立した部分にMBRというものがあり、 その中に4エントリ分のパーティション情報が入っています。 これがしっかりしていないと、Windows(?)は起動しません。 よって、デュアルブートといわれているものが、Ubuntuが自動で作成した、 GRUBブートローダなのか、あるいは、Windows(?)とUbuntuとは、 別なHDDにインストールされていて、独立したMBRをそれぞれ持って起動しているのか、 こうした情報を補足されると正しい指示も出せると思いますけど。
その他の回答 (3)
- vaidurya
- ベストアンサー率45% (2714/5983)
Microsoftは技術者以外の人にはコンピューターの仕組みを隠蔽する傾向が強く あたりまえのパーティション管理のルールが Windowsユーザーには浸透していない場合がありますね。 もう一つのパーティションの正体はパーティションIDで判断できる場合があります。 Linuxの場合、パーティション情報はfdisk -l /dev/sdaといったカタチで スクリプト処理もできる自動終了する形式で参照することもできます。 で、/dev/sdaを見ると、Windowsとのデュアルブートなら 最小限で二つのパーティション。 一般的には仮想記憶を専用パーティションとするLinuxでは 標準として一つのswapパーティションが作られ…合わせて三つになります。 ただ、この段階で、たぶんUbuntuはIBM PC/AT規格における 基本パーティションを浪費することを避けるためか…理由は知りませんが… 拡張パーティションを作成し、その中の論理パーティションとしてswapを作ります。 そのため… たとえば、典型的な自動インストールしたUbuntu環境では/dev/sda内は sda1,sda2,sda5の三つになり、sda2はマウント不可のデバイスとなります。 (sda2が拡張領域全体を意味します) Windowsとのデュアルブートならsda1,sda2,sda3,sda5になりそうな気がします。 sda3が(略) これ以外に、リカバリー領域を持つWindowsプリインストールPCの場合 リカバリー領域として、もう一つのパーティションがあったりします。 Dellの一部モデルではハードウェア自己診断ツールのパーティションがあったり… こういったものは、Windowsの仕様上、ドライブとして認識されないよう 特別なパーティションIDが与えられ、書き換えや破壊を防いでいます。 ただ、これLinuxとかからだと、単なるFAT32やNTFSとして扱えたりします。 リカバリーシステムのお勉強のために見るのは勝手ですが リカバリー不能になると困るという人もいるかと思います。 読み書き可でマウントしないことをお薦めします。 コンピューター自体の管理には、OSの管理より下に コンピューターの仕様に関わるパーティションがあったりもしますから 状況によっては、パーティション(ファイルシステム)のラベルを参照しましょう。 FAT系はたぶんmtoolsのmlabel,NTFSはntfslabel ext2,ext3,ext4はe2labelで参照と変更ができると思います。 (うちはWindows飼っていないので検証したこと無い) Linuxでのパーティションのマウントには、ラベルや ファイルシステム作成時に生成されるUUIDを指定することもできます。 HDDをとっかえひっかえするようなgeekな状況では UUIDを使った/etc/fstab記述が合理的な場合があります。 LABELは任意に変更可能、同じLABELのfsが複数ある状況もおきる。 (故障したPCのHDDを持ってきてメンテする時とかがありがち) UUIDは通常uniqで任意の変更は不可。 ただしddなどでの複製ではLABELもUUIDも複製される。 そういった点に注意して運用すれば、HDDの接続端子や認識順に関わらず 常に、同じパーティションを同じ場所にマウントできるので便利。 USBメモリーやUSB-HDDを複数使い分ける際に合理的なはずです。
お礼
回答ありがとうございました。 そして返信が遅くなってしまい申し訳ありません。 様々な情報ありがとうございます。 正直初心者の自分にとって今回の回答はとても難しくて少しずつ理解できるように 努力しております。 自分なりに調べたところHDDのパーティションテーブルが壊れているのが原因の一つのようです。 上記の問題が直ったらアドバイス頂いた情報でさらに解決できるような気がします。 それにしてもHDDのパーティショニングはとても複雑なのですね^^; 今回の問題で初めて実感しました。 どうもありがとうございました。
- yakan9
- ベストアンサー率54% (2244/4125)
> NTFSファイルシステムを参照できるように何か入れないといけないでしょうか? 基本的なLinux(Ubuntuも同じ)での操作を記載いたします。 常にNTFSフォマットされたパーティションを参照したい場合は、下記のことを行っておきます。 /etc/fstabの最後に次のようなエントリを作成しておいてください。 /dev/hda2は、windowsのパーティションとする。 /dev/hda2 /media/hda2 ntfs defaults 0 0 を、/etc/fstabの最後に追加する。 cd /media mkdir hda2 mount /media/hda2 とやれば、マウントされ、 cd /media/hda2 として、 ls -al で、C:\直下のディレクトリとファイルが参照できます。 次回の再起動からは、自由に、参照できます。 ただし、上の全ての操作は、root権限で行うものとします。 root権限を得るためには、 sudo su - コマンドを実行し、ログインパスワードを入れるものとします。 なお、老婆心ながら、付記しますと、 /dev/hda2 /media/hda2 ntfs defaults 0 0 の第3パラメータをntfsをntfs-3gとすると、読み書きできるようになりますが、 破壊することもできるためお勧めしません。 もう一つ、Windowsを休止状態で終了した状態の場合、少し面倒な操作が必要となる場合もあります。 これも解除する方法はありますが、高度な知識がない場合はお勧めしません。
お礼
回答ありがとうございます。 返信が遅くなってしまい申し訳ありません。 自分なりにしらべてみたのですが、どうやらHDDのパーティションテーブルが壊れているのが そもそもの原因のようです。 Ubuntu上でfdisk -lをしてもたしかにパーティションテーブルが無いとでます。 HDDを外して外付けで別のPCから接続してみたところ、WindowsのOS上からもWindowsの領域がみえていませんでした。(パーティションテーブルが無いため「ディスクはフォーマットされていません。今すぐフォ-マットしますか」とでます) ただHDD自体にのっているWindowsは起動するのが不思議なところです^^; パーティションテーブルが直ればうまくいきそうな気がします>< fstabの追記の情報ありがとうございました。 マウントがうまくいったらそちらの追記もやってみます。 ntfs-3gだと書き込みもできるためリスクもあるのですね。知りませんでした。 正常に使えるようになるまでは控えようと思います。 ありがとうございました。
- mtaka2
- ベストアンサー率73% (867/1179)
質問者さんの状況では、まだ、まったくマウントされていない状況です。 Unix系OSにおける「マウント」のしくみを誤解されているようです。 fdisk は、HDをどういう区分けにするかを管理します。 同じHDDをパーティショニングしているのなら、 Linux 側でパーティション管理ツールである fdisk を使えば、 Windowsの区画が見えることになりますが、それは 「区画がある」ことを確認しているだけで、まだマウントはしていないので、 その区画内にあるファイルをアクセスすることはできません。 /dev/hda2 は、「デバイスファイル」と呼ばれるもので、 「区画を示す」ための特殊なファイルであり、通常のファイルアクセスはできません。 マウント時にどの区画をマウントしたいのか指示するための「名前」として使います。 そして、マウント操作を行うことで、やっとその区画内のファイルにアクセスできるようになります。 マウント操作は、下記のような手順になります。 --- sudo mkdir /media/windows sudo mount -t ntfs /dev/hda2 /media/windows --- これによって、デバイスファイル/dev/hda2 で示される区画内のファイルを、/media/windows フォルダでアクセスできるようになります。 (mkdir は、最初の一回だけでいいです。また、fstab にマウント情報を記述することで、起動時に自動 的にマウントするようにできます。)
お礼
回答ありがとうございます>< >fdisk は、HDをどういう区分けにするかを管理します。 >「区画がある」ことを確認しているだけで、まだマウントはしていないので、 >その区画内にあるファイルをアクセスすることはできません。 fdiskコマンドも誤解していたようです。ありがとうございます。 デバイスファイル自体にアクセスしようとしていた為、何もでなかったのですね。 教えて頂いた通り、マウントポイントを作って以下のようにマウントしてみました。 $su $*** $mkdir /media/windows $mount -t ntfs-3g /dev/hda2 /media/windows でコマンドは通りました。ただ/media/windowsには何もでません。。 あとfdiskでwindows側のパーティションを再確認したのですが、/dev/hda2以外に別の領域があるようで/dev/sdb doesn't contain a valid partition tableと出ています。 こちらもマウントしてみましたが何もでませんでした;;
お礼
お返事が大変遅くなってしまい申し訳ありませんでした。 再度windowsを再インストールし直して、パーティションを切り Linuxを入れ直したところうまく見えるようになりました。 いろいろ調べてみましたが、やはりパーティションテーブルが壊れていたのが 原因だったようでパーティションを切り直してみたところ あれだけ何をやってもダメだったコマンドも正常に入って問題なく動きました。 いろいろとアドバイスを頂いたのにお礼が遅くなってしまいましたが 今回の質問でとても勉強になりました。 どうもありがとうございました。