Ubuntuで書き込み権限を持つWindowsフォルダーをマウントする


17

どうやら答えはここにあります:https : //superuser.com/questions/251537/mount-specific-ntfs-directory-on-linuxしかし、それは期待どおりに動作していません。

Windows 7とUbuntu 13.04(12.10からアップグレード)のデュアルブートシステムがあり、読み取りと書き込みの両方のためにWindows 7の個人用フォルダーにアクセスしたい。指定されたリンクに従って指示に従いましたが、私の/etc/fstabファイルは次のようになります。

/dev/sda1 /media/windows ntfs ro,umask=0222,defaults 0 0
/media/windows/Users/MyUser/    /home/myuser/Windows    ntfs-3g rbind,user,umask=0222,defaults 0 0
/media/windows/Users/OtherUser/ /home/otheruser/Windows ntfs-3g rbind,user,umask=0222,defaults 0 0

ほぼ期待どおりに機能します。Windowsパーティションは/media/windows/読み取り専用権限でオンになっており、Windows個人用フォルダーはにあり~/Windowsます。ただし、この個人用フォルダーも読み取り専用です。

注私はこれをマルチセッション環境で構成しているため、自分のセッションおよび他のユーザーのセッションで機能するためにこれが必要です。各ユーザーがLinuxからWindowsフォルダーにアクセスし、書き込みおよび読み取りができる必要があります。


システム全体を再起動せずに構成を変更およびテストできる方法はありますか。これまでのところ、umaskを(0002に)変更し、uidパラメーターとgidパラメーターなどを追加しようとしましたが、良い結果は得られませんでしたが、変更ごとにシステムをシャットダウンする必要があります。
カルロスエウジェニオトンプソンピンソン

私はそのアイデアまたはその下にパーティションをマウントするためにtottiに100の賞金を授与しました/root/(これは動作しています)。私の現在のソリューションは、falconer、ajThapa、totti、およびyilmiによって提供されるヒントを使用しますが、元の質問で期待どおりに機能するものはありません(保護は十分ではありません)が、機能しています(ユーザーはデータにrwアクセスできます)。これらの回答はすべて支持されました。
カルロスエウジェニオトンプソンピンソン

回答:


6

上記のリンクされたスーパーユーザーの質問は、パーティションとサブディレクトリを読み取り専用モードでマウントするためのものです。サブディレクトリ(個人フォルダ)のみが読み書き可能です。

最初に、システムが読み取り/書き込みモードでNTFSパーティションをマウントできることを確認します

mount -t ntfs-3g  -o rw /dev/sda1 /media/windows

次に、マウントされたfsが書き込み可能かどうかをテストします。ここでやめない場合は、このサイトで別の質問をしてください。

問題は、ROにマウントされたパーティションのサブディレクトリがRWにないことです。そのため、RWのWindowsパーティションを非表示でアクセスできない場所にマウントします。それでは、root以外のユーザーがアクセスできない/ root / winにマウントしましょう(なしでsudo

rootユーザーとして
手順に従ってください
。1. RWにWindowsパーティションをマウントします

mount -t ntfs-3g -o rw /dev/sda1 /root/win  

2.バインドする

mount --bind /root/win/Users/MyUser/  /home/myuser/Windows  

3. Windowsパーティションの読み取り専用インスタンスをバインドします

mount --bind /root/win /media/windows  
mount -o remount,ro /media/windows

これですべてが正常になります。さらに、Windowsパーティションをアンマウントできますが、一部のシステムではバインドされたパーティション(@home)にアクセスできなくなると警告しています。コードはumount /root/win

または、RW の/ root / winではなく/ media / windowsに windowsパーティションをマウントし、すぐに同じマウントポイント(/ media / windows)にバインドマウントして、誰も(rootでさえ)書き込みできないようにすることができます。パーティション(ただし、ユーザーフォルダー上)。


動作しますか?何の問題?
トッティ

/ media / windowsにrwをマウントする最初の部分は機能するように見えますが、実際にファイルに触れて編集することができるw許可を報告しません。
カルロスエウジェニオトンプソンピンソン

再マウントすると、私は次のエラーを取得する:Remounting is not supported at present. You have to umount volume and then mount it once again.
カルロス・エウジェニオ・トンプソンPinzón

あなたのシステムの問題だと思います。これは、ubuntu 12.10で正常にテストされました。ubuntu 10.04でもこのようなエラーは見られません。ライブシステムで試してみることができます(OSが更新されたようです)。
トッティ

エレガントな解決策と非常に明確な説明をしてくれた私の+1にも感謝します。特に、ユーザーフォルダーをマウントして、1つ(ルートでも)がユーザーフォルダー以外に書き込みできるようにするトリックが気に入っています。システムファイルが属するWindows 8.1インスタンス以外のOSインスタンスは、それらのシステムファイルにアクセスするビジネスを持たないため、これは確かに最良のソリューションです。ただし、共有データは別の話です。
ビルの猿14

5

リンクされたスーパーユーザーの回答が有効なものであるとは思わない。(私はそれを試すことはできませんが。)からman mount

ファイルシステムのマウントオプションは、元のマウントポイントのオプションと同じままであり、-binオプションと--bind /-rbindを渡すことで変更できないことに注意してください。マウントオプションは、たとえば次のような別のremountコマンドで変更できます。

mount --bind olddir newdir
mount -o remount,ro newdir

また--rbind、別のファイルシステムドライバー(ntfsとntfs-3g)を使用して、ファイルシステムの一部を作成することもできます。

あなたの場合はrbindマウント何も読み書きとなりませんので、このコマンドは、すべてのオプションを無視します。また、カーネルntfsドライバーは書き込みをサポートしていないため、明らかにこのrwオプションは書き込みにも役立ちません。ntfs-3gドライバーを使用します。

基本的にあなたがすべきことはこれです(ターミナルで):

mount -t ntfs-3g -o ro /dev/sda1 /media/windows
mount --bind /media/windows/Users/MyUser/    /home/myuser/Windows
mount -o remount,rw /home/myuser/Windows

(それ--rbindも不必要だと思います、--bindそれで十分でしょう。)

そして、質問の下のコメントに関して:もちろん、テストのためにシステムを再起動する必要はありませんmount。上記のようにコマンドを使用するだけです。(umountコマンドでアンマウントします。)

これが意図したとおりに機能することを確認したら、マウントを変更し、必要なオプション(uid、gid、umaskなど)を追加するだけです。


さて、を使用してテストできmountますが、動作中の構成が見つかったら、/etc/fstab他の手段によって、または自動的にそれを実行したいと思います。(Obの質問:mountコマンドをfstabパラメーターに変換するにはどうすればよいですか?)
カルロスエウジェニオトンプソンピンソン

@CarlosEugenioThompsonPinzón fstabmount、起動時にコマンドによって連続的に解析される単なるファイルです。しかし、Ubuntuは起動時に使用せず、fstabのコマンドを順番に実行しない可能性mountがあると思いmountallます。そのため、これらのコマンドパラメーターを単純に配置してfstabも機能しない可能性があります。ただし、常に作業中のマウントコマンドをスタートアップスクリプト(例/etc/rc.local:)に入れるか、それらから起動ジョブを作成することができます。あなたの場合のより重要なことは、有効なマウントスキームを見つけることです。起動時に自動マウントするのは簡単な仕事です。
鷹匠

@CarlosEugenioThompsonPinzónOopsコメントの最後の質問を見逃しました。では、マウントコマンドはどのようにfstabに変換されますか?あなたにはそれを見ることができるman mount、ここ。ショートストーリー:最初のフィールド:マウントするデバイス、2番目のフィールド:マウントポイント、3番目のフィールド:fs-type(より正確にはfsドライバー)、4番目のフィールド:マウントオプション、もう1つのフィールドはあまり重要ではありません。したがって、mountコマンドを作成すると、後ろに書いた文字列は-t3番目のフィールドに、後ろに書いた文字列は-o4番目のフィールドに入ります。
鷹匠

3

これが役立つかどうかを確認してください...

sda1が既ににマウントされている場合は/media/windows、次の方法でアンマウントできます。

sudo umount /media/windows

次に、ディレクトリwindowsを作成します/media/

sudo mkdir /media/windows

/etc/fstab以下のように編集します。

/dev/sda1  /media/windows ntfs-3g  rw,nodev,noexec,auto,nouser,async,locale=en_US.utf8,uid=1000,gid=1000,umask=0002 0 0

/media/windows/Users/MyUser/  /home/myuser/Windows  ntfs-3g rbind,user,rw,nodev,noexec,auto,async,uid=1000,gid=1000,umask=0002 0 0

/media/windows/Users/OtherUser/  /home/otheruser/Windows  rbind,user,rw,nodev,noexec,auto,async,uid=1001,gid=1001,umask=0002 0 0

:ユーザーのuidgidの値を変更します。ユーザーのuidとgidを取得するには、コマンドid -u usernameと応答を使用できますid -g username。)

次のコマンドでこれらをマウントできます:

sudo mount -a

次に、再バインドされたディレクトリに移動して、ファイルを編集できるかどうかを確認します。これで完了です。


さて、私はrootとしてrwパーミッションを持っています/media/windows(では報告されていませんがls、ファイルを編集できます)が、ローカルディレクトリでsudoはファイルを変更するために必要です。
カルロスエウジェニオトンプソンピンソン

...そして今、すべてのディレクトリから、私には(ユーザー1000)を所属されているマウント/media/windowsします/home/someotheruser/Windows
カルロスエウジェニオトンプソンピンソン

今、あなたと他のユーザーがそれぞれの作品を作成して保存できると思います。ユーザーの$ HOMEのマウントポイント...残りのユーザーがまだRWアクセスできない場合は、グループに追加します(おそらくgid 1000で)
正確に

現在、すべてのローカルユーザーが接続されているグループがあり、そのグループに書き込み権限を付与しています。これにより、「各ユーザーは自分のデータにrwアクセスできます」が解決されますが、パーティション全体および他のユーザーのデータは保護されません。
カルロスエウジェニオトンプソンピンソン

3

fstab構成ファイルを編集する前に、すべてのテストを行ってください。

おそらく、ファイルシステムにダーティのフラグが付けられている場合、ntfsファイルシステムは読み取り専用で自動的にマウントされることをご存じでしょう。答えを試す前にまずしなければならないことは、Windowsでディスクをマウントし、chkdskを実行してから再度マウントすることです。

また、RWはまだ失敗に取り付けた場合、次のようなさまざまなマウントタイプのオプションを取り付けてみてくださいsudo mount -t ntfsまたはsudo mount -t ntfs-3g

fsがrwにマウントされると、次のことができます。

mount --bind /media/MOUNTPOINT/TARGETFOLDER /home/SHAREDDIRECTORY/ mount -o remount,ro /home/SHAREDDIRECTORY/

または

sudo gksu nautilusまたはsudo gksu dolphinsu権限でエクスプローラーを開く


をありがとうchkdsk。NTFSパーティションに実際にいくつかの破損がありましたが、今ではマウントされたドライブにを使用して書き込むことができますsudo
カルロスエウジェニオトンプソンピンソン

2

読み取りおよび書き込み属性でマウントしようとしないのはなぜrw ですか?

/ dev / sda1 / media / windows ntfs rw、umask = 0222、defaults 0 0


確認しますが、パーティション全体を読み取り専用にし、特定のフォルダのみを読み書き可能にします。
カルロスエウジェニオトンプソンピンソン

うまくいきませんでした。パーティションとフォルダーの両方はまだ読み取り専用です。唯一の違いは、chmodとchownが読み取り専用エラーの報告に失敗しないことです。これらは動作しません。
カルロスエウジェニオトンプソンピンソン

2

しかし、私はよくわかりません、これを試してみてください。ドライブがマウントされたら、端末で次のコマンドを実行します

sudo gksu nautilus

管理者パスワードを入力し、開いたグラフィカルウィンドウで、ドライブをクリックして読み取り/書き込み権限を変更できるはずです。

これが機能するかどうかを教えてください。root権限のグラフィカルインターフェイスでnautilusを使用するために利用できるヘルプがあります。


...これは、ファイルへのアクセスを可能にし、彼らは同様にオフにコピーすることができますが、非UNIXファイルシステムがマウントされているとして、読み取り専用として読み取り専用の権限は、変更されない可能性があります
Wilf

1

sudo chmod.666〜/ Windowsを使用することをお勧めします

https://help.ubuntu.com/community/FilePermissions


1
許可や所有者を変更することはできません(でもsudo)。システムが読み取り専用であることを示すコマンドを拒否します。さえで/media/windows/パーティション全体で(と期待される動作ではないと思われる)
カルロス・エウジェニオ・トンプソンPinzón

私はおそらく間違っていますが、時々sudoにはrootが持っている権限がありません。sudo suを実行してからchmod
virtualxtc

0

Windowsを読み書き可能としてマウントする最も簡単な方法は、単に再起動するか、完全にシャットダウンすることです。「高速シャットダウン」を使用すると、NTFSパーティションが休止状態になります。この原則については、このリンクで詳しく説明しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.