Memasang folder Windows dengan izin menulis di Ubuntu

17

Tampaknya jawabannya ada di sini: /superuser/251537/mount-specific-ntfs-directory-on-linux namun tidak berfungsi seperti yang diharapkan.

Saya memiliki sistem dual boot dengan Windows 7 dan Ubuntu 13.04 (ditingkatkan dari 12.10), dan saya ingin mengakses folder pribadi Windows 7 untuk membaca dan menulis. Saya mengikuti instruksi sesuai dengan tautan yang diberikan dan /etc/fstabfile saya terlihat seperti ini:

/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

Hampir berfungsi seperti yang diharapkan. Partisi Windows saya aktif /media/windows/dengan izin hanya baca dan folder pribadi Windows saya ada di ~/Windows. Namun folder pribadi ini juga hanya-baca.

Catatan Saya mengonfigurasikan ini dalam lingkungan multi-sesi, jadi saya perlu ini berfungsi untuk sesi saya dan sesi pengguna lain. Saya membutuhkan agar setiap pengguna dapat mengakses dan dapat menulis dan membaca folder Windows mereka dari Linux.

Carlos Eugenio Thompson Pinzón
sumber
Apakah ada cara saya dapat mengubah dan menguji konfigurasi tanpa harus me-restart seluruh sistem. Sejauh ini saya telah mencoba mengubah umask (ke 0002), menambahkan parameter uid dan gid, dll tanpa hasil positif, tetapi setiap perubahan memerlukan shutdown sistem.
Carlos Eugenio Thompson Pinzón
Saya telah memberikan hadiah 100 kepada totti untuk ide atau memasang partisi di bawah /root/(yang berfungsi). Solusi saya saat ini menggunakan petunjuk yang diberikan oleh falconer, ajThapa, totti dan yilmi, tidak satupun dari mereka yang berfungsi seperti yang diharapkan dalam pertanyaan awal (perlindungan tidak cukup), tetapi berfungsi (pengguna memiliki akses ke data mereka). Semua jawaban yang disebutkan di atas telah dihapuskan.
Carlos Eugenio Thompson Pinz

Jawaban:

6

Pertanyaan pengguna super terkait di atas adalah untuk memasang partisi dan sub direktori dalam mode hanya baca . Anda hanya perlu subdirektori (folder pribadi) untuk bisa baca-tulis.

Pertama periksa sistem Anda dapat me-mount partisi ntfs dalam mode baca-tulis

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

Sekarang uji apakah fs yang dipasang dapat ditulis. Jika tidak berhenti di sini dan ajukan pertanyaan lain di situs ini.

Masalahnya adalah sub-direktori partisi yang dipasang RO tidak bisa di RW. Jadi solusinya adalah me-mount partisi windows di RW di tempat yang tersembunyi dan tidak dapat diakses. Jadi mari kita mount di / root / win yang tidak dapat diakses oleh pengguna non-root (tanpa sudo)

Sebagai pengguna root lakukan
Langkah - langkah berikut:
1. Pasang partisi windows di RW

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

2. Ikatkan itu

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

3. Bind instance read hanya dari partisi windows

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

Sekarang semuanya harus beres. Selain itu Anda dapat meng-unmount partisi windows tetapi saya memperingatkan Anda dalam beberapa sistem itu akan membuat yang binded (@home) tidak dapat diakses. Kodenya adalahumount /root/win

Atau Anda dapat me-mount partisi windows di RW di / media / windows (bukan / root / win) dan segera ikat mount pada titik mount yang sama (/ media / windows) sehingga tidak ada orang (bahkan root) dapat menulis di partisi (tetapi pada folder pengguna).

totti
sumber
Apakah itu bekerja ? Apa masalahnya?
totti
Bagian pertama, pemasangan rw di / media / windows tampaknya berfungsi meskipun tidak melaporkan izin yang sebenarnya dapat saya sentuh dan edit file.
Carlos Eugenio Thompson Pinzo
Saat memasang ulang saya mendapatkan kesalahan berikut:Remounting is not supported at present. You have to umount volume and then mount it once again.
Carlos Eugenio Thompson Pinzón
Saya pikir ini masalah sistem Anda. Saya sudah mencoba ini dengan sukses di ubuntu 12.10. Saya tidak pernah melihat kesalahan seperti itu bahkan di ubuntu 10.04. Anda dapat mencobanya di sistem live (sepertinya Anda memperbarui OS).
totti
Terima kasih +1 dari saya, juga, untuk solusi yang elegan dan penjelasan yang sangat jelas. Saya terutama menyukai trik untuk memasang folder pengguna sehingga satu (bahkan root) dapat menulis selain folder pengguna. Itu memang solusi terbaik karena tidak ada instance OS selain instance Windows 8.1 yang dimiliki file sistem yang bisnisnya mengakses file sistem tersebut. Namun, data bersama adalah cerita yang berbeda.
Bill The Ape
5

Saya ragu bahwa jawaban pengguna super terkait adalah jawaban yang berfungsi. (Meskipun saya tidak bisa mencobanya.) Dari man mount:

Perhatikan bahwa opsi pemasangan sistem berkas akan tetap sama dengan yang ada di titik pemasangan asli, dan tidak dapat diubah dengan melewatkan opsi -o bersama dengan --bind / - rbind. Opsi pemasangan dapat diubah dengan perintah remount terpisah, misalnya:

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

Saya juga ragu apakah mungkin untuk --rbindbagian dari sistem file dengan driver sistem file yang berbeda (ntfs vs ntfs-3g).

Ketika Anda rbindperintah mount mengabaikan setiap opsi, jadi tidak ada yang akan menjadi baca-tulis. Dan karena driver ntfs kernel tidak mendukung penulisan, jelas rwopsi tidak akan membantu dengan itu. Gunakan driver ntfs-3g.

Pada dasarnya yang harus Anda lakukan adalah ini (di terminal):

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

(Saya pikir itu --rbindjuga tidak perlu, --bindharus cukup.)

Dan mengenai komentar di bawah pertanyaan: Tentu saja Anda tidak perlu me-restart sistem untuk pengujian, cukup gunakan mountperintah seperti yang saya lakukan di atas. (Dan unmount dengan umountperintah.)

Setelah Anda mengonfirmasi bahwa ini berfungsi sebagaimana mestinya, Anda cukup memodifikasi mount dan menambahkan opsi yang Anda inginkan: uid, gid, umask, dll.

elang
sumber
Yah, saya dapat menguji menggunakan mount, namun ketika saya menemukan konfigurasi yang berfungsi, saya akan ingin melakukannya secara otomatis, baik dengan /etc/fstabatau dengan cara lain. (Dengan Pertanyaan Ob: bagaimana cara menerjemahkan mountperintah ke dalam fstabparameter?)
Carlos Eugenio Thompson Pinzo
@ CarlosEugenioThompsonPinzón Ini fstabhanyalah sebuah file yang diuraikan secara berurutan oleh mountperintah pada startup. Tapi saya pikir Ubuntu tidak menggunakan mounttetapi mountallpada saat startup, yang mungkin tidak menjalankan perintah di fstab secara berurutan. Jadi ya, menempatkan parameter perintah ini hanya agar fstabtidak berfungsi. Tetapi Anda selalu dapat dengan mudah menempatkan perintah mount yang berfungsi ke dalam skrip startup (mis. /etc/rc.local) Atau melakukan pekerjaan pemula dari itu. Yang lebih penting dalam kasus Anda adalah menemukan skema pemasangan yang berfungsi, menjadikannya otomatis saat startup adalah pekerjaan yang mudah.
Falcon
@ CarlosEugenioThompsonPinzón Ups Saya melewatkan pertanyaan terakhir dari komentar Anda. Jadi bagaimana perintah mount menerjemahkan ke fstab? Anda dapat mencarinya di man mountatau di sini . Cerita pendek: bidang pertama: perangkat untuk dipasang, bidang kedua: titik mount, bidang ketiga: tipe fs (lebih tepatnya driver fs), bidang keempat: opsi pemasangan, bidang lainnya kurang importat sekarang. Jadi, bentuk perintah mount string yang kita tulis di belakang -tberada di bidang ketiga, string yang kita tulis di belakang -omasuk ke bidang keempat.
Falcon
3

Lihat apakah ini membantu ...

Jika sda1sudah terpasang ke /media/windows, Anda dapat melepasnya dengan:

sudo umount /media/windows

Selanjutnya buat direktori windowsdi /media/:

sudo mkdir /media/windows

Edit /etc/fstabseperti di bawah ini:

/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

( Catatan : ubah nilai uid dan gid untuk pengguna. Untuk mendapatkan uid dan gid pengguna, Anda dapat menggunakan perintah id -u usernamedan id -g usernameresp.)

Sekarang Anda dapat memasang ini dengan perintah:

sudo mount -a

Sekarang buka direktori rebinded dan lihat apakah Anda dapat mengedit file. Dan Anda harus selesai.

tepat
sumber
Oke, saya punya izin rw aktif /media/windows(tidak dilaporkan ls, tapi saya bisa mengedit file) sebagai root, namun di direktori lokal saya perlu sudountuk memodifikasi file.
Carlos Eugenio Thompson Pinzón
... dan sekarang semua direktori yang dipasang adalah milik saya (pengguna 1000), dari /media/windowshingga /home/someotheruser/Windows.
Carlos Eugenio Thompson Pinzon
Saya kira sekarang Anda dan pengguna lain dapat membuat dan menyimpan karya dalam resp. mount-points di $ HOME pengguna ... jika pengguna lain masih tidak dapat memiliki akses RW, tambahkan mereka ke grup Anda (mungkin dengan gid 1000)
tepat
Saat ini saya memiliki grup yang dilampirkan semua pengguna lokal, dan saya memberikan izin menulis ke grup itu. Ini memecahkan "setiap pengguna memiliki akses ke data mereka sendiri" tetapi seluruh partisi dan data pengguna lain tidak dilindungi.
Carlos Eugenio Thompson Pinz
3

Lakukan semua pengujian Anda sebelum mengedit file konfigurasi fstab Anda.

Nah, Anda mungkin tahu bahwa filesystem ntfs secara otomatis di-mount dalam read-only jika sistem file ditandai sebagai kotor. Yang harus Anda lakukan terlebih dahulu sebelum mencoba salah satu jawaban adalah memasang disk di windows dan menjalankan chkdsk sebelum mencoba memasangnya lagi.

Juga, jika pemasangan di rw masih gagal, Anda harus mencoba pemasangan dengan opsi jenis pemasangan yang berbeda seperti sudo mount -t ntfsatausudo mount -t ntfs-3g

Setelah fs dipasang di rw Anda dapat melakukan hal berikut:

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

atau

sudo gksu nautilusatau sudo gksu dolphinuntuk membuka seorang penjelajah dengan hak su

yilmi
sumber
Terima kasih untuk chkdsk. Memang ada beberapa kerusakan pada partisi NTFS, dan sekarang saya dapat menulis ke drive yang di-mount dengan sudo.
Carlos Eugenio Thompson Pinzo
2

Mengapa tidak mencoba memasangnya dengan atribut baca dan tulis: rw ?

/ dev / sda1 / media / windows ntfs rw , umask = 0222, standar 0 0

pengguna189541
sumber
Saya akan memeriksa, namun saya lebih suka seluruh partisi read-only dan hanya beberapa folder tertentu sebagai read-write.
Carlos Eugenio Thompson Pinzón
Tidak bekerja Baik partisi dan folder masih hanya baca. Satu-satunya perbedaan adalah chmod dan chown tidak gagal melaporkan kesalahan read-only: mereka hanya tidak beroperasi.
Carlos Eugenio Thompson Pinzón
2

Namun saya tidak yakin, bisakah Anda mencoba ini? Setelah drive terpasang, berikan perintah berikut pada terminal

sudo gksu nautilus

masukkan kata sandi administratif Anda dan di jendela grafis yang terbuka, Anda harus dapat mengklik drive dan mengubah izin baca / tulis.

Beri tahu saya jika ini berhasil. Ada bantuan yang tersedia untuk penggunaan nautilus dengan antarmuka grafis dengan hak akses root.

KSR
sumber
Ini akan memungkinkan akses ke file dan mereka dapat disalin juga, tetapi izin read-only mungkin tidak dapat diubah, karena sistem file non-unix dipasang sebagai hanya baca ...
Wilf
1

Saya akan merekomendasikan menggunakan sudo chmod.666 ~ / Windows

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

pengguna1553176
sumber
1
Saya tidak dapat mengubah izin atau pemilik (bahkan dengan sudo). Ia menolak perintah yang mengatakan bahwa sistem ini hanya-baca. Bahkan di /media/windows/mana seluruh partisi (dan yang tidak akan menjadi perilaku yang diharapkan)
Carlos Eugenio Thompson Pinzón
Saya mungkin salah, tetapi terkadang sudo tidak memiliki izin yang root miliki. Coba jalankan sudo su lalu chmod
virtualxtc
0

Cara termudah untuk me-mount Windows sebagai read-write adalah dengan hanya reboot atau melakukan shutdown penuh. Partisi NTFS hibernasi ketika "fast shut down" digunakan. Prinsip ini dicakup secara lebih rinci di tautan ini.


sumber