Монтаж папки Windows з дозволом на запис в Ubuntu


17

Очевидно, відповідь є тут: /superuser/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. Однак ця особиста папка також є лише для читання.

Примітка. Я налаштовую це в багатосесійному середовищі, тому мені це потрібно для мого сеансу та для інших сеансів користувача. Мені потрібно, щоб кожен користувач міг отримати доступ і мати змогу писати та читати свої папки Windows з Linux.


Чи є спосіб змінити і протестувати конфігурації без перезавантаження всієї системи. Поки я намагався змінити umask (на 0002), додавши параметри uid та gid тощо без позитивних результатів, але кожна зміна вимагає відключення системи.
Carlos Eugenio Thompson Pinzón

Я присудив 100 баунт тотті за ідею або встановлення перегородки під /root/(яка працює). Моє поточне рішення використовує підказки, надані falconer, ajThapa, totti та yilmi, жоден з них не працює так, як очікувалося в оригінальному запитанні (захистів недостатньо), але він працює (користувачі мають доступ до своїх даних). Усі ці згадані відповіді були анульовані.
Карлос Еухеніо Томпсон Пінсон

Відповіді:


6

Наведене вище питання щодо суперкористувача призначене для монтажу розділів та підкаталогу в режимі лише для читання . Для читання-запису вам потрібен лише підкаталог (особиста папка).

Спочатку перевірте, чи може ваша система змонтувати розділ ntfs у режимі читання-запису

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

Тепер перевірте, чи змонтований fs підходить для запису. Якщо не зупинитись тут, задайте ще одне запитання на цьому сайті.

Проблема в тому, що підкаталог розділу, встановлений на RO, не може бути в RW. Таким чином, рішення - змонтувати перегородку Windows у RW у прихованому та недоступному місці. Тож давайте змонтуємо його на / root / win, який недоступний для користувачів, що не мають кореня (без sudo)

Як користувач root, виконайте наступні
кроки
1. Установіть розділ Windows у RW

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

Крім того, ви можете встановити розділ Windows у RW в / media / windows (замість / root / win) і негайно прив’язати його до тієї ж точки монтажу (/ media / windows), щоб ніхто (навіть root) не міг писати на розділ (але в папці користувача).


Це працює ? У чому проблема?
totti

Перша частина, монтування rw у / media / windows, здається, працює, хоча вона не повідомляє про дозволи, я можу насправді торкатися та редагувати файли.
Карлос Еухеніо Томпсон Пінсон

Під час перерахунку я отримую таку помилку:Remounting is not supported at present. You have to umount volume and then mount it once again.
Карлос Евгеніо Томпсон Пінсон

Я думаю, що це проблема вашої системи. У мене це успішно перевірено в ubuntu 12.10. Я ніколи не бачу такої помилки навіть в ubuntu 10.04. Ви можете спробувати його в живій системі (як здалося, ви оновили ОС).
totti

Дякую +1 мені також за вишукане рішення та дуже чітке пояснення. Особливо мені подобається хитрість встановлення користувацької папки, щоб одна (навіть root) могла писати на іншій, ніж папка користувача. Це дійсно найкраще рішення, оскільки жоден екземпляр ОС, окрім екземпляра Windows 8.1, до якого належать системні файли, не має жодного бізнесу, що має доступ до цих системних файлів. Спільні дані, однак, вже інша історія.
Білл Мавпа

5

Я сумніваюся, що відповідна відповідна відповідь є справною. (Хоча я не можу спробувати.) З man mount:

Зауважте, що параметри кріплення файлової системи залишаться тими ж, що й у початковій точці монтажу, і їх неможливо змінити, передавши параметр -o разом з --bind / - rbind. Параметри кріплення можуть бути змінені окремою командою перезавантаження, наприклад:

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

Я також сумніваюся, що це можливо --rbind частини файлової системи з іншим драйвером файлової системи (ntfs vs ntfs-3g).

Коли ти rbind команда mount ігнорує кожну опцію, тож нічого не стане читанням-записом. А оскільки драйвер ядра 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параметри?)
Carlos Eugenio Thompson Pinzón

@ CarlosEugenioThompsonPinzón - fstabце лише файл, який послідовно розбирається mountкомандою при запуску. Але я думаю , що Ubuntu не використовувати , mountале mountallпри запуску, який не може запускати команди в Fstab послідовно. Так що так, проставити ці параметри команди просто не fstabможе. Але ви завжди можете просто вставити робочі команди монтажу в сценарій запуску (наприклад /etc/rc.local) або зробити завдання з них на початку. Важливіше у вашому випадку - це з’ясувати робочу схему кріплення, зробити її автоматичним під час запуску - це легка робота.
сокола

@ CarlosEugenioThompsonPinzón На жаль, я пропустив останнє запитання від вашого коментаря. Тож як команди mount переводяться на fstab? Ви можете подивитися в ньому man mountчи тут . Коротка історія: перше поле: пристрій для встановлення, друге поле: точка монтування, третє поле: тип fs (точніше драйвер fs), четверте поле: параметри кріплення, інше поле зараз менш імпортне. Отже, сформуйте команду mount рядок, яку ми написали позаду, -tйде в третє поле, рядок, який ми написали позаду, -oпереходить у четверте поле.
сокола

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

( Примітка : змінити значення uid та gid як для користувача. Щоб отримати uid та gid користувача, ви можете скористатися командою id -u usernameтаid -g username resp.)

Тепер ви можете встановити їх за допомогою команди:

sudo mount -a

Тепер перейдіть до оновлених каталогів і подивіться, чи можете ви редагувати файл. І вам слід зробити.


Гаразд, у мене є права доступу на rw /media/windows(не повідомляється в ls, але я можу редагувати файли) як root, проте в локальних каталогах мені потрібно 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 dolphinвідкрити дослідник з правами су


Дякую за chkdsk. Дійсно було певних пошкоджень у розділі NTFS, і тепер я можу записати на змонтований диск із sudo.
Карлос Еухеніо Томпсон Пінсон

2

Чому б не спробувати встановити його за допомогою атрибута read and write rw :?

/ dev / sda1 / media / windows ntfs rw , umask = 0222, за замовчуванням 0 0


Я перевірю, однак я вважаю за краще мати весь розділ лише для читання та лише деякі конкретні папки як читання-запис.
Карлос Еухеніо Томпсон Пінсон

Не працювало. І розділ, і папки все ще доступні лише для читання. Єдина відмінність полягає в тому, що chmod і chown не відмовляються повідомляти про помилку лише для читання: вони просто не працюють.
Карлос Еухеніо Томпсон Пінсон

2

Я не зовсім впевнений, проте ви можете спробувати це, будь ласка. Після встановлення накопичувача дайте наступну команду на терміналі

sudo gksu nautilus

введіть свій адміністративний пароль і у графічному вікні, яке відкриється, ви повинні мати можливість натиснути диск та змінити дозволи читання / запису.

Повідомте мене, якщо це працює. Існує допомога для використання nautilus з графічним інтерфейсом з правами root.


Це дозволить отримати доступ до файлів, і вони також можуть бути скопійовані, але дозволи лише для читання не можуть бути змінені, оскільки файли системи не unix монтуються лише для читання ...
Wilf

1

Я рекомендую використовувати sudo chmod.666 ~ / Windows

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


1
Я не можу змінити ні дозвіл, ні власника (навіть з sudo). Він відхиляє команду, яка говорить, що система лише для читання. Навіть не в /media/windows/якому є весь розділ (і який би не було очікуваної поведінки)
Carlos Eugenio Thompson Pinzón

Я, мабуть, помиляюся, але іноді у sudo немає дозволів, які мали б root. Спробуйте запустити sudo su then chmod
virtualxtc

0

Найпростіший спосіб встановити Windows як "читання-запис" - це просто перезавантажити його або зробити повне вимкнення. Розділ NTFS перезимує, коли використовується "швидке відключення". Цей принцип детальніше висвітлюється на цьому посиланні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.