Linux: Windowsパーティションのマウント、ファイル編集の実現

bash_eyecatch Linux (Ubuntu, bash, Shell Scripts)

~デュアル・ブート環境でLinuxからWindows側のパーティションをマウント、マウント解除をしたりファイルへの書き込みを可能にするために~

#本題に入る前に
記事の難易度:初心者向け(コマンド・ラインの学習を始めた方など)
執筆者のキャプテン・クッキーはまだ初心者なので、このポストまでの記事は今の所、入門レベル 又は 初心者向け の2つのレベルのどちらかになっています。

#本文
Windowsのパーティションをマウントしても、Linux側からの書き込みが可能な状態に事前にしていなければ、ファイルを開けても編集して上書き保存することは出来ない。これはWindows側での簡単な操作で実現出来る。この例ではWindows10を使用している。
windows_setting_change_2写真中、赤で囲んである

“Turn on fast startup (recommended)”

のチェックを外す作業をすれば良い。

日本語環境では確認していないが、おそらく写真の上部に見える部分、

Control Panel > Hardware and Sound > Power Options > System Settings

というパスが参考になるはず。

詳しくは、また別のポストで紹介したい。

 

さて、以上を実施した上で、次に紹介する手順によりWindowsのパーティションのマウントを行えば、Linuxからファイルへの書き込みが問題なく実施できる。
ここからは、Linux側での操作になる。

Linuxのファイル・マネージャー(Ubuntu なら Nautilus)からアクセスを試みれば、簡単にWindows側にアクセスできるしその際意識しなくてもマウントが実施されるが、Linuxの起動直後にシエル・スクリプトを実施したい場合に、そうした手順を一度GUIで踏むのは面倒である。

コマンド・ラインでのマウント方法を紹介する本記事は、シエル・スクリプトの作成時に活用してもらう事を念頭に作成するものである。

 

まず /dev ディレクトリーを確認すると

/dev/sda1
/dev/sda2

といったファイルが確認できる。

この内のWindowsのファイル・システムあたるものをマウントすれば、アクセスが出来るようになる。

次コマンドを実行すれば、どのファイルをマウントすべきなのかを確認することが出来る。

$ sudo fdisk -l /dev/sda

check_sda_1
自分の環境の場合は、写真中の次のライン

/dev/sda3 2361344 871749631 869388288 414.6G Microsoft basic data

を見れば、容量や Microsoft basic data という表示から狙いのファイルであると分かる。

また、次のコマンドでも確認が可能である。

$ sudo parted -l

check_sda_2

写真中の次のライン
3 1209MB 446GB 445GB ntfs Basic data partition msftdata

に注目すれば、容量や ntfs または msftdata という表示から、これが目的のファイルだと確認できる。冒頭の 3 は /dev/sda3 を指している。

マウントを実行する場合は次のようなコマンドが考えられる。

$ sudo mount -t ntfs /dev/sda3 /media/User_Name/Directory_Name

このコマンドを実行する場合、

/media/User_Name 

上のディレクトリーにマウントの目的地にするためのディレクトリーを設ける必要がある。

そのディレクトリーにする理由は、GUIのファイル・マネージャーが自動的にマウントをしてくれる場合にそうなっていた事を参考にしての事である。

マウントのためのディレクトリーの作成方法だが、

もし自分のユーザー・ネームが captain_cookie で
作成するディレクトリーの名前を mounting_test 

にするならば次のコマンド・ラインが考えられる。

$ mkdir /media/captain_cookie/mounting_test

以上によりマウントの目的地になるディレクトリーを作成した後で、次のコマンド・ラインを実行すれば、自分の参考ケースの場合Windows側のファイル・システムがマウント出来る。

$ sudo mount -t ntfs /dev/sda3 /media/captain_cookie/mounting_test

これで /media/captain_cookie/mounting_test を開けば、Windows側のファイル・システムにアクセスする事が可能となった。

ここでは /dev/sda3 がマウントするターゲットになっているが、これはもちろん人それぞれの環境により変化するので、前述したコマンド・ラインでどの sda を指定するべきなのかの確認が必要だ。

ところで ”$ sudo mount -t ntfs” の部分に関してだが、マウントもマウントの解除も sudo 無しでは実施出来ない。

また -t オプションで ntfs (Windowsのファイル・システム)を明示しなくてもマウントは出来るようだが、自分が調べた範囲ではどの参考例でも、これを明示した上でマウントしていた。

マウントの解除は次のようなコマンド・ラインで実行できる。

$ sudo umount /dev/sda3

もちろん、マウントしたのが /dev/sda4 であればそのように入力する必要がある。コマンド名は “unmount” では無い点に注意が必要かもしれない。

コマンド・ラインを使っていると、インストール時は必要な末尾の s がコマンドの実行時には必要なかったり、英単語感覚だと入力しがちな文字が不必要であるなど、エラーが発生した場合に理由がすぐに分からず戸惑うこともある。

<余談>
sudo コマンドが必要なものは、システムに大きな影響があるのでそれを必要としている。よく分からずに、とりあえず実行してみるのは危険である。調べて何が起こるのかを確認の上で実施することが望ましい。

記事で紹介している

fdisk
parted

といったコマンドもパーティションに関して処置を行うものなので注意を要する。

実際、自分もWindows上での体験ではあるが、ドライブへのアクセスが一時不可能になったことがある。

#本文終わり

ご指摘などがあれば、
twitterアカウント: @3C_CPT_COOKIE
までお願いします。
(フォロー関係にない場合は気付けません。)

タイトルとURLをコピーしました