- SDB:Открываем доступ к Windows файлам
- В общих чертах
- Нормальная установка
- Свободное место на жестком диске
- Создание нового раздела
- Опции монтирования
- Подготовка к ручной установке
- Linux: подключить общую сетевую папку Windows по SMB (CIFS)
- Смонтировать сетевую папку в Linux с помощью cifs-util
- Автоматическое монтирование сетевой папки в Linux
- Linux: подключиться к сетевой папке с помощью клиента samba
SDB:Открываем доступ к Windows файлам
Текущие версии openSUSE автоматически определяют Windows разделы на жестком диске и делают их доступными из openSUSE. Эта статья может дать чуть больше информации и подсказок. Текст не много устарел, но все же может использоваться.
В общих чертах
Если вы используете вашу операционную систему вместе с Windows, то наверняка у вас часто возникает необходимость обмениваться информацией между системами. На данный момент идеального решения не существует. Проблема в том, что Windows и Linux используют разные файловые системы, и они не могут нормально работать друг с другом. Доступ к файлам в Windows и Linux осуществляется по разному.
Лучше всего использовать отдельный раздел для обмена данными, для того чтобы защитить информацию от ее непосредственной модификации одной из операционных систем. Вопрос в том, какую файловую систему использовать на данном разделе.
Единственная файловая система, которую поддерживают обе ОС, это FAT32 (FAT12 и FAT16 также поддерживаются, но они устарели). В FAT32 нет поддержки прав доступа и она не может работать с файлами больше 4ГБ. Если вас это устраивает, то отдельный раздел с FAT32 это наилучшее решение проблемы.
Если вам нужно использовать файлы больше 4ГБ (напр. DVD образы) вы можете выбрать либо ext2 либо NTFS для вашего раздела. Вы можете использовать драйвер captive NTFS в Linux чтобы использовать NTFS раздел который вы создали с помощью Windows или использовать Explore2fs или Ext2 IFS непосредственно с Windows чтобы получить доступ к ext2-разделам созданных с помощью Linux. В Google можно найти больше решений этой проблемы. Например, другой полезный инструмента Ext2Read, это внешне похожая на Проводник программа позволяет просматривать ext2/ext3/ext4 из Windows. Она поддерживает Linux LVM2 и и может быть использована для просмотра\копирования файлов и папок, и даже рекурсивно.
Также можно осуществить обмен данными с помощью коммерческой программы VMware, которая позволяет обмениваться данными между загруженной и эмулируемой операционными системами.
Нормальная установка
Для начала сделайте резервные копии данных, особенно если вам необходимо изменить размер существующего раздела!
Свободное место на жестком диске
После того как openSUSE покажет вам список возможных опций, вам необходимо будет вручную разбить жесткий диск. Когда вы откроете мастер разметки дисков, вы увидите список hda устройств. Под ними должен находится раздел hda1. Где-то там должно быть написано ntfs или fat32. Выберите один из возможных вариантов и нажмите кнопку «resize»(изменить размер). После вы сможете выбрать новый размер для раздела.
Создание нового раздела
Если вы не создали новый раздел из Windows, просто добавьте его с помощью Linux. Назовите точку монтирования /windows/data (например). Если вы уже установили openSUSE, это можно сделать с помощью yast2 System-> Partitioning (Система-> Разбиение жесткого диска), но намного сложнее, так как раздел необходимо будет переместить.
Не используйте главный раздел FAT32 для обмена данными т. к. Windows может быть повреждена. Используйте логический раздел вместо расширенного(extended) (напр. /dev/hda5).
Так как вы можете нечаянно повредить ваш раздел, подумайте дважды, перед тем как монтировать системный раздел Windows — /dev/hda1! В этом случае создайте вторую точку монтирования (e.g. /windows/system). Строго рекомендуется монтировать только раздел для обмена (/dev/hda5 в нашем примере).
Опции монтирования
Опции монтирования определяют как будет смонтирован раздел. Выберите необходимый раздел — partition->Edit->Fstab Options и введите их в «Arbitrary option value». Также это может быть сделано после прямой установки с помощью редактора (установочные опции будут записаны в файл /etc/fstab) или через yast2 System->Partitioning.
Я использовал следующие опции:
«utf8» позволит использовать специальные символы, «codepage» необходим для символов, показывающих короткие DOS имена (смотрите список кодовых страниц), dmask необходим, чтобы позволить каждому пользователю видеть содержание директорий, fmask позволяет каждому пользователю осуществлять чтение и запись (но не выполнять файлы находящиеся в разделе для обмена), «shortname» осуществляет корректное преобразование символов к нижнему и верхнему регистру коротких и длинных DOS имен. Для большей информации смотрите «man mount», «man umask» и «man chmod» .
Последняя строка моего раздела /etc/fstab :
/dev/hda5 /windows/data vfat utf8,codepage=850,dmask=000,fmask=111,shortname=winnt 0 0
У колонок следующее значение (смотрите «man fstab» для большей информации):
«/dev/hda5» это физический раздел. Вы можете выбрать его с помощью yast или найти его командой «fdisk -l /dev/hda».
«/windows/data» это точка монтирования, где вы можете найти Windows файлы в иерархии файловой системы Linux. Yast создаст для вас директорию, иначе выполните «mkdir -p /windows/data».
«vfat» это тип файловой системы которая используется на FAT32 разделе.
«0 0» указывает О.С. не проверять файловую систему во время загрузки.
Подготовка к ручной установке
Если yast не может освободить место для Linux и для раздела обмены, попробуйте следующий способ:
Предположим Windows установлена на главном устройстве (hda) и на первом разделе (hda1). Выполните дефрагментацию Windows раздела (если это FAT/FAT32, пожалуйста НЕ дефрагментируйте NTFS) и после этого выполните chkdsk /f и перезагрузите дважды в Windows (chkdsk работает в два захода, второй делается невидимо). Если вы этого не сделаете openSUSE может отказаться изменять размер раздела. В последних версиях openSUSE нет информации о том, что данные были потеряны, даже если инструкции выше не были выполнены.
Не забудьте закрыть программы Windows которые работают в фоновом режиме прежде чем вы начнете дефрагментацию. Также, после окончания дефрагментации, откройте командную строку (the C: prompt в черном прямоугольном окошке. откройте Program Menu в Accessories и возможно System). Напишите: chkdsk /f будет выведено предупреждение, что вы не можете поставить пароль на устройство. Потом программа спросит не хотите ли вы запустить chkdsk при следующей загрузке системы. Ответьте да. Перезагрузите систему. Вы увидите сообщение от программы chkdsk. НЕ ПЕЧАТАЙТЕ НИЧЕГО. НЕ ТРОГАЙТЕ КЛАВИАТУРУ ВООБЩЕ! или вам придется повторить все сначала. 😛
После того как будет выполнена проверка и Windows загрузится, еще раз выполните перезагрузку. При загрузке будет невидимо выполнена программа chkdsk . После того как Windows перезагрузится готовьтесь к установке SuSE.
Linux: подключить общую сетевую папку Windows по SMB (CIFS)
В этой статье мы рассмотрим, как в Linux смонтировать общую сетевую папку, расположенную на хосте Windows. В Windows для доступа к общим сетевым папкам используется протокол SMB (Server Message Block), который ранее назывался CIFS (Сommon Internet File System). В Linux для доступа к сетевым папкам Windows по протоколу SMB можно использовать клиент cifs-utils или Samba.
Совет. Для доступа к сетевым папкам по SMB/CIFS используется порт TCP/445. Для разрешения имени используются порты UDP 137, 138 и TCP 139. Если эти порты закрыты, вы сможете подключиться к сетевой папке Windows только по IP адресу.
Смонтировать сетевую папку в Linux с помощью cifs-util
Вы можете смонтировать сетевую папку, находящуюся на Windows хосте, с помощью утилит из пакета cifs-util. Для установки пакета выполните команду:
- В Ubuntu/Debian: $ sudo apt-get install cifs-utils
- В CentOS/Oracle/RHEL: $ sudo dnf install cifs-utils
Создайте точку монтирования:
Теперь вы можете смонтировать сетевую папку с компьютера Windows под пользователем User03с помощью команды:
$ sudo mount.cifs //192.168.31.33/backup /mnt/share -o user=User03
Укажите пароль пользователя Windows для подключения к сетевой папке.
При подключении сетевой SMB папки можно задать дополнительные параметры:
$ sudo mount -t cifs -o username=User03,password=PasswOrd1,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share
- //192.168.31.33/backup – сетевая папка Windows
- /mnt/share – точка монтирования
- -t cifs – указать файловую систему для монтирования
- -o опции монтирования (эту опцию можно использовать только с правами root, поэтому в команде используется sudo)
- username=User03,password=PasswOrd1 – имя и пароль пользователя Windows, у которого есть права доступа к сетевой папке. Можно указать имя пользователя guest, если разрешен анонимный доступ к сетевой папке
- iocharset=utf8 – включить поддержку кодировки UTF8 для отображения имен файлов
- uid=1000 – использовать этого пользователя Linux в качестве владельца файлов в папке
По умолчанию шары Windows монтируются в Linux с полными правами (0755). Если вы хотите изменить права по-умолчанию при монтировании, добавьте в команду опции:
dir_mode=0755,file_mode=0755
Если вы хотите использовать имя компьютера при подключении сетевого каталога Windows, добавьте в файл /etc/hosts строку:
Чтобы не указывать учетные данные пользователя Windows в команде монтирования сетевой папки, их можно сохранить в файле.
username=User03 password=PasswOrd1
Для подключения к папке под анонимным пользователем:
Если нужно указать учетную запись пользователя из определенного домена Active Directory, добавьте в файл третью строку:
$ chmod 600 ~/.windowscredentials
Теперь при подключении сетевой папки вместо явного указания имени пользователя и пароля можно указать путь к файлу:
$ sudo mount -t cifs -o credentials=/home/sysops/.windowscredentials,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share
Отмонтировать сетевую SMB папку:
Автоматическое монтирование сетевой папки в Linux
Можно настроить автоматическое монтирование сетевой папки Windows через /etc/fstab.
Добавьте в файл следующую строку подключения SMB каталога:
//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev 0 0
- rw – смонтировать SBM папку на чтение и запись
- nofail – продолжить загрузку ОС если не удается смонтировать файловую систему
- _netdev – указывает что подключается файловая система по сети. Linux не будет монтировать такие файловые системы пока на хосте не будет инициализирована сеть.
Вы можете указать версию протокола SMB, которую нужно использовать для подключения (версия SMB 1.0 считается небезопасной и отключена по-умолчанию в современных версиях Windows). Добавьте в конец строки с настройками подключения параметр vers=3.0 .
//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev,vers=3.0 0 0
Если на стороне хоста Windows используется несовместимая (старая версия) SMB, при подключении появится ошибка:
mount error(112): Host is downилиmount error(95): Operation not supported
Чтобы сразу смонтировать сетевую папку, выполните:
Linux: подключиться к сетевой папке с помощью клиента samba
Установите в Linux клиент samba:
- В Ubuntu/Debian: $ sudo apt-get install smbclient
- В CentOS/Oracle/RHEL: # dnf install smbclient
Для вывода всех SMB ресурсов в локальной сети:
Вывести список доступных SMB папок на удаленном хосте Windows:
Если в Windows запрещен анонимный доступ, появится ошибка:
session setup failed: NT_STATUS_ACCESS_DENIED
В этом случае нужно указать учетную запись пользователя Windows, которую нужно использовать для подключения:
smbclient -L //192.168.31.33 -U User03
Если нужно использовать учетную запись пользователя домена, добавьте опцию –W:
smbclient -L //192.168.31.33 -U User03 –W Domain
Для интерактивного подключения к сетевой папке Windows используется команда:
smbclient //192.168.31.33/backup -U User03 -W Domain
smbclient //192.168.31.33/backup -U User03
smbclient //192.168.31.33/backup -U Everyone
После успешного входа появится приглашение:
Вывести список файлов в сетевой папке:
Скачать файл из сетевой папки Windows:
get remotefile.txt /home/sysops/localfile.txt
Сохранить локальный файл из Linux в SMB каталог:
put /home/sysops/localfile.txt remotefile.txt
Можно последовательно выполнить несколько команд smbclient:
$ smbclient //192.168.31.33/backup -U User03 -c «cd MyFolder; get arcive.zip /mnt/backup/archive.zip»
Полный список команд в smbclient можно вывести с помощью команды help. Команды smbclient схожи с командами ftp клиента.
При использовании команды smbclient может появиться ошибка:
Unable to initialize messaging contextsmbclient: Can't load /etc/samba/smb.conf - run testparm to debug it.
Чтобы исправить ошибку, создайте файл /etc/samba/smb.conf.
Если на хосте Windows отключен протокол SMB 1.0, то при подключении с помощью smbclient появится ошибка:
Reconnecting with SMB1 for workgroup listing. protocol negotiation failed: NT_STATUS_CONNECTION_RESET Unable to connect with SMB1 -- no workgroup available.