- Доступ к Linux-разделам из-под Windows
- Ext2Fsd
- DiskInternals Linux Reader
- Ext2Explore
- Заключение
- Совместное использование ресурсов в Windows и Linux
- Что такое SAMBA?
- Установка
- Конфигурационный файл smb.cnf
- Пользователи и пароли
- Доступ к дискам Linux из Windows
- Доступ к дискам Windows из Linux
- Доступ к принтеру Linux для клиентов Windows
- Доступ к принтеру Windows для клиентов Linux
Доступ к Linux-разделам из-под Windows
Двойная загрузка операционных систем является очень распространенным сценарием среди пользователей Windows, которые решили попробовать систему Linux. Они поступают так потому, что еще не чувствуют себя достаточно уверенно, чтобы полностью оставить Windows и перейти на Linux. Или же потому, что этим пользователям необходимы некоторые программы и игры, которые невозможно запустить под Linux. Но в обоих случаях, когда пользователь работает между двумя операционными системами, существует потребность во взаимодействии между обеими системами. В операционной системе Linux есть изначальная поддержка «родных» файловых систем Windows (NTFS, FAT). Это означает, что работая под системой Linux, можно иметь доступ к Windows-разделам. С системой Windows дело обстоит с точностью до наоборот. Чтобы получить доступ к Linux-разделам из-под Windows, необходимо установить сторонние программы, специально созданные для этой цели.
В этой статье дан обзор нескольких таких программ, которые позволяют открыть Linux-разделы, работая в операционной системе Windows. Все рассматриваемые программы имеют поддержку файловой системы ext4, которая является таковой по умолчанию для всех дистрибутивов Linux. Также подобные программы могут работать с более ранними версиями файловых систем, таких как ext3 или ext2, а также c файловыми системами другого типа.
Все программы, обзор которых я решил сделать в данной статье, по умолчанию предоставляют доступ к Linux-разделам только в режиме чтения. Это означает, что с помощью таких программ можно читать файлы с Linux-разделов, но нельзя производить запись на них. С моей точки зрения, такой подход является наилучшим вариантом, так как иметь полный доступ к Linux-разделам может быть опасным. Это связано с тем, что при полном доступе к файловой системе Linux, достаточно изменить или удалить хотя бы один файл, что приведет операционную систему Linux в неработоспособное состояние. Пользователь должен иметь точное представление о том, что он собирается изменить, прежде чем приступать к самому изменению. В этом случае риск повредить систему сводится к минимуму.
Ext2Fsd
Ext2Fsd является драйвером файловой системы ext2, написанным под линейку операционных систем Windows (2000, XP, Vista и Win7). Будучи установленным, драйвер предоставляет доступ к Linux-разделам по буквенному обозначению каждого раздела для любой из установленных под Windows программ.
Установщик программы Ext2Fsd во время инсталляции задаст вопрос о добавлении службы ext2fsd в автозагрузку операционной системы. Если согласиться с предложением инсталлятора, то данный сервис будет запускаться каждый раз при загрузке операционной системы Windows, автоматически монтируя указанные в настройках разделы Linux. Если же отказаться от такой возможности, то службу нужно будет запускать вручную в каждом случае, когда необходимо получить доступ к определенным разделам.
Драйвер Ext2Fsd имеет дополнительную опцию для включения прав записи в файловых системах Linux. По причинам, которые я уже называл ранее, рекомендую оставить данную опцию отключенной, за исключением тех случаев, когда действительно необходимо что-либо изменить, и вы что знаете, что делаете.
Давайте посмотрим на основное окно программы Ext2Fsd:
Если нажать горячую клавишу F7 (или перейти в меню по пути «Tools — Service Management»), можно увидеть состояние службы (включена или отключена), и несколько дополнительных настроек, которые относятся к выбранному разделу:
Давайте смонтируем раздел. Это можно выполнить двумя способами. Первый — правым щелчком мыши на выбранном разделе в списке открываем контекстное меню и выбираем «Ext2 Volume Management».
Второй способ — просто нажать горячую клавишу F3 для выделенного в списке раздела.
Откроется следующее окно:
Если раздел, к которому нужно получить доступ, находиться на съемном носителе, то необходимо выбрать пункт «Automatically mount via Ext2Mgr» в контекстном меню. В этом случае указанный раздел будет монтироваться каждый раз, когда будет подключаться съемный носитель. В случае, если нужный раздел располагается на постоянно подключенном носителе, то для его автоматического монтирования необходимо выбрать пункт «Mountpoint for fixed disk, need reboot» в контекстном меню. Выберите данный пункт и выполните перезагрузку, если это необходимо.
Перейдем в «Мой компьютер»:
Видим, что Linux-раздел (Локальный диск H) смонтирован и к нему можно получить доступ точно также, как и к любому «нормальному» Windows-разделу. Для проверки открываю указанный раздел для просмотра данных на нем:
DiskInternals Linux Reader
Программа DiskInternals Linux Reader является официально бесплатной и поддерживает целый ряд файловых систем: ext2, ext3, ext4, HFS и ReiserFS.
Подобно программе Ext2Fsd, приложение Linux Reader предоставляет доступ к Linux-разделам только с правами чтения и не разрешает пользователям производить запись на них. Это гарантирует, что изменения в текущей операционной системе не скажутся на работе системы Linux.
Но, в отличие от предыдущей программы, Linux Reader предоставляет доступ к разделам не через их буквенное обозначение. Для каждого из Linux-разделов запускается своя собственная копия приложения. Такой способ имеет несколько приятных преимуществ, таких как использование «Проводника» Windows и функция предпросмотра. Последняя поддерживает только несколько типов файлов (определенный набор форматов изображений, несколько видео-форматов и еще несколько других, которые у меня не было возможности протестировать). Поэтому, если вы ищете файлы, для которых в программу Linux Reader встроена возможность предпросмотра, то можно просмотреть изменение прежде, чем сохранять их.
На изображении внизу видно функцию предпросмотра в действии. Если щелкнуть на пункте «Сохранить как . » (Save as. ), выбранный файл может быть сохранен в файловой системе Windows. Это бывает полезным, если необходимо работать с этим файлом в обход режима только для чтения.
Также программа Linux Reader может сохранять директорию целиком. Для этого нужно щелкнуть правым щелчком мыши на нужной папке и выбрать пункт «Сохранить» (Save). Затем нажать кнопку «Далее» (Next).
В следующем окне выбираем «Сохранить файлы» (Save Files) и снова нажмем кнопку «Далее» (Next):
Выберите конечную папку (рисунок вверху), в которую необходимо сохранить файлы и закончите операцию.
Другой интересной особенностью программы является возможность монтировать образы дисков формата raw (например, таких как ISO-файлы) и контейнеры (примером может быть виртуальные диски VirtualBox). Подобную возможность лично я не тестировал, но как мне кажется, это полезная возможность.
Ext2Explore
Эта программа работает подобно Linux Reader, но поддерживает меньшее количество файловых систем: ext2, ext3, ext4. Данная программа имеет одну уникальную особенность, которой нет у двух предыдущих — она является портабельной. Это означает, что нет необходимости устанавливать программу под операционной системой. Она может быть запущена с любого носителя, включая и съемные.
Программа Ext2explore.exe должна запускаться в системе Windows с правами администратора. Это можно выполнить с помощью контекстного меню.
Для дальнейшей работы в программе, чтобы сохранить время, откройте окно свойств файла и включите опцию «Запускать эту программу с правами администратора» (Run this program as an administrator) на вкладке «Совместимость» (Compatibility).
Также, как и в программе Linux Reader, для того, чтобы открыть файл в другой программе, его необходимо первоначально сохранить в определенной директории в файловой системе Windows.
Заключение
Несмотря на то, что все из описанных выше программ выполняют те задачи, для которых они были созданы, имеется еще одна возможность для обмена файлами между двумя операционными системами Linux и Windows, более простая в использовании и интуитивно понятная. Для этого необходимо создать дополнительный раздел, отформатированный в файловой системе, понятной для операционной системы Windows и доступной для системы Linux. Файловая система FAT32 имеет изначальную поддержку как в системе Linux, так и Windows. Кроме того, Linux без проблем может читать и писать на разделы, отформатированные в файловой системе NTFS.
Таким образом, вы можете просматривать и изменять файлы в любое время, без необходимости иметь дополнительное программное обеспечение. Если есть какие-либо файлы, к которым необходимо получить доступ из другой операционной системы, просто скопируйте их в дополнительный раздел, отформатированный в файловой системе, понятной для операционной системы Windows.
Посмотрите также другие статьи раздела об эмуляции возможностей Windows.
Совместное использование ресурсов в Windows и Linux
Виктор Кулагин, Сергей Кулагин
В последнее время популярность Linux растет буквально каждый день. Linux является высокопроизводительной некоммерческой операционной системой, одной из разновидностей Unix. Как известно, она была создана выпускником Хельсинкского университета Линусом Торвальдсом. Основными преимуществами Linux являются открытость и мультипоточность, кроме того, в ней есть возможности четкого разграничения ресурсов и уровней доступа пользователей. На сегодняшний день многие производители программного обеспечения поддерживают эту операционную систему; среди них выделим Oracle и Informix.
В этой статье рассматривается, как организовать совместное использование ресурсов операционных систем Windows и Linux с помощью пакета программ Samba.
Что такое SAMBA?
Samba — набор программ, которые предназначены для организации доступа клиентов к файловому пространству сервера и принтерам с помощью протоколов SMB (Server Message Block)и CIFS (Common Internet Filesystem). Первоначально написанный для Unix Samba теперь также работает под управлением и других ОС, в частности OS/2 и VMS. Это означает, что такие средства этих операционных систем, как файл-сервер и сервер печати, могут быть использованы для SMB- и CIFS-клиентов. В настоящее время существуют соответствующие клиенты для DOS, Windows NT, Windows 95, Linux smbfs, OS/2, Pathworks. Протокол SMB используется Microsoft Windows NT и 95 для организации доступа к дискам и принтерам.
При помощи SAMBA возможно:
- предоставлять доступ к файловой системе под ОС Linux для Windows-машин;
- получать доступ к файловой системе под ОС Windows для Linux-машин;
- предоставлять доступ к принтерам под ОС Linux для Windows-машин;
- получать доступ к принтерам под ОС Windows для Linux-машин.
Компоненты пакета Samba выполняют следующие функции:
- Демон smbd предоставляет службы доступа к файлам и принтерам для клиентов протокола SMB, таких как Windows 95/98, Windows for Workgroups, Windows NT или LanManager. Конфигурация для этого демона задается в файле smb.cfg.
- Демон nmbd обеспечивает поддержку сервера имен Netbios для клиентов. Он может запускаться в интерактивном режиме для опроса других демонов службы имен.
- Программа smbclient является простым SMB-клиентом для UNIX-машин. Она используется для доступа к ресурсам на других SMB-совместимых серверах (таких как Windows NT), а также позволяет UNIX-станции воспользоваться удаленным принтером, подключенным к любому SMB-серверу (например, к компьютеру с WfWg).
- Утилита testparm предназначена для проверки файла конфигурации smb.conf.
- Утилита smbstatus позволяет выяснить, кто в данный момент использует сервер smbd.
- Утилита nmblookup дает возможность запрашивать имена NetBios из UNIX-машин.
- При помощи утилиты make smbcodepages создаются файлы для описания SMB кодовой страницы.
- Утилита smbpasswd дает возможность шифровать пароли.
Каждый компонент детально описан на страницах руководства, поставляемого с пакетом Samba.
Установка
Пакет Samba очень прост в установке и настройке.
Для начала будем считать, что вы установили дистрибутив RedHat с поддержкой Samba.
Для работы пакета Samba необходим запуск двух демонов:
- smbd (демон SMB);
- nmbd (демон сервера имен NetBIOS).
Они устанавливаются в /usr/sbin и могут запускаться либо вручную, либо автоматически при загрузке из системных скриптов, либо из inetd.conf. Рассмотрим оба автоматических запуска.
Первый способ — из системных стартовых скриптов. Необходимо написать следующий скрипт в файл /etc/rc.d/init.d/smb и создать на него символические ссылки с именами файлов, указанных в комментариях.
Второй способ. Запуск SMB-демонов из inetd. Для этого необходимо включить следующие строки в файл /etc/inetd.conf:
Далее производится рестарт демона inet:
Выберите один из способов запуска демонов и примените его. Следует заметить, что при установке пакета SAMBA по умолчанию демоны всегда включаются в «автомат». Так что скрипты можно не редактировать.
После того как мы разобрались с запуском демонов, необходимо сконфигурировать SMB-сервер. Это операция заключается в настройке главного конфигурационного файла — /etc/smb.cnf.
Конфигурационный файл smb.cnf
Настройка Samba в Linux (или других UNIX-машинах) контролируется единственным файлом — /etc/smb.cnf. Этот файл определяет, к каким системным ресурсам вы намереваетесь дать доступ клиентам и какие ограничения собираетесь наложить на использование этих ресурсов.
Рассмотрим этот файл. Он состоит из секций и параметров. Секции начинаются с наименования, заключенного в квадратные скобки, и продолжаются до начала следующей секции. Они содержат параметры следующей формы:
В файле все записи — линии. Каждая линия может быть комментарием, названием секции или параметром. Секции и имена параметров не чувствительны к регистру.
Каждая секция в конфигурационном файле (кроме секции [global]) описывает ресурс доступа. Имя секции — это имя ресурса доступа. Ресурс доступа включает путь к директории доступа и описание прав доступа пользователей.
Например, создадим на диске директорию /common и выделим ее как сетевой ресурс для всех клиентов по записи и чтению:
Все записанные любым пользователем в этот ресурс файлы будут иметь права:
- для создателя — все (чтение, запись, исполнение);
- для группы (в которую входит пользователь) — чтение;
- для всех остальных — чтение.
Если мы хотим предоставить права всем пользователям на любой файл, необходимо добавить в эту секцию строку следующего вида:
Существует три специальные секции:
- Секция [global] определяет некоторые переменные, которые Samba будет использовать для определения доступа ко всем ресурсам.
- Секция [homes] позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним каталогам на Linux-машине. Так что если пользователи Windows попытаются подключиться к этому разделу со своих Windows-машин, то они будут подключены к своим персональным домашним директориям. Заметим, что для того, чтобы это сделать, они должны быть зарегистрированы на этой Linux-машине.
- Секция [printers] схожа с [homes], но для принтеров.
Для понимания SMB-сервера верхнего и нижнего регистра в наименовании файлов в секции [global] необходимо раскомментировать строку
Пример части файла:
Пользователи и пароли
Для доступа клиента к SMB-серверу необходимо:
1. Добавить пользователя в систему.
2. Добавить пользователя в учетные записи SMB-сервера. Для этого надо ввести команду:
где LinuxUser — имя пользователя в системе
SMBUser — имя SMB-пользователя.
далее на запрос о присвоении пароля введите пароль клиента.
3. Раскомментировать строки с описанием пользователей и их паролей:
Внимание: если вы хотите дать доступ пользователям, работающим под Windows с шифрованием пароля, необходимо раскомментировать строку:
Доступ к дискам Linux из Windows
Организация доступа к дискам Linux очень проста и сводится всего лишь к редактированию файла конфигурации smb.cnf, то есть к добавлению секции (как это делается, было рассмотрено выше).
Доступ к дискам Windows из Linux
Программа клиента SMB для UNIX-машин включена в дистрибутив Samba. Она обеспечивает ftp-подобный интерфейс командной строки. Вы можете использовать эту утилиту для переноса файлов сервера под управлением Windows клиенту под управлением Linux. Для того чтобы увидеть, какие ресурсы доступны на данной машине, необходимо выполнить команду:
где «host» — это имя машины, доступные ресурсы которой вы хотите увидеть. Эта команда вернет список имен «сервисов» — то есть имен дисков или принтеров, к которым может быть получен доступ. До тех пор пока SMB-сервер не будет настроен для управления доступом, он будет запрашивать пароль. Введите в ответ на запрос пароль для пользователя «гость (guest)» или ваш персональный пароль на этой машине.
Вывод этой команды должен выглядеть примерно так:
Browse list показывает другие SMB-серверы в сети с доступными ресурсами.
Для использования клиента выполните следующую команду:
где «service» — имя машины и сервиса. Например, если вы пытаетесь обратиться к директории, которая доступна под именем «public» на машине, названной «redfox», то имя сервиса должно звучать как \\redfox\public. Однако вследствие ограничений оболочки вам необходимо спрятать обратный слэш, так что в итоге эта командная строка будет выглядеть следующим образом:
где «mypasswd» — символьная строка вашего пароля.
Вы получите приглашение smbclient:
Чтобы получить помощь по использованию smbclient, напечатайте «h»:
Доступ к принтеру Linux для клиентов Windows
Для организации доступа Windows-машин к Linux-принтеру вам необходимо убедиться, что принтер работает под Linux. Если вы можете печатать под Linux, то организация доступа к принтеру будет очень простой.
Добавьте настройку принтера в ваш файл smb.cnf:
Убедитесь, что путь к принтеру (в этом случае для [ljet]) соответствует буферной директории, указанной в файле /etc/printcap!
Следует заметить, что существуют некоторые проблемы с доступом к принтерам на UNIX-машинах для машин с Windows NT с применением Samba. Одна из них состоит в том, что NT неправильно видит сетевой принтер, другая связана с проблемой пароля. Для решения этих вопросов ознакомьтесь с файлом docs/WinNT.txt дистрибутива Samba.
Доступ к принтеру Windows для клиентов Linux
Для доступа к принтеру, инсталлированному на компьютере с ОС Windows, необходимо следующее:
- Вы должны иметь правильные записи в файле /etc/printcap, которые должны соответствовать локальной структуре директорий (для буферной директории и т.п.).
- У вас должен быть скрипт /usr/bin/smbprint. Он поставляется вместе с исходными текстами Samba, но не со всеми двоичными дистрибутивами Samba. Его слегка модифицированная копия обсуждается ниже.
- Если вы хотите преобразовывать ASCII-файлы в Postscript, то вы должны иметь программу nenscript или ее эквивалент. nenscript — это конвертор Postscript, он обычно устанавливается в директорию /usr/bin.
- Вы можете упростить процесс печати через Samba, используя программы-надстройки. Простой скрипт на perl, который обрабатывает ASCII, Postscript или преобразованный Postscript, приведен ниже.
- Запись в файле /etc/printcap, приведенном ниже, сделана для принтера HP 5MP на сервере Windows NT. Используются следующие поля файла /etc/printcap:
lp — имя устройства, открываемого для вывода
sd — директория спула принтера (на локальной машине)
af — файл учета использования принтера
mx — максимальный размер файла (ноль — без ограничений)
if — имя входного фильтра (скрипта)
Для более детальной информации о печати смотрите Printing HOWTO или справочные страницы по printcap.
Убедитесь, что буферная директория и директория, используемая для учета пользования, существуют и имеют право на запись. Убедитесь, что строка «if» содержит правильный путь к скрипту smbprint (дан ниже) и что записи указывают на правильное устройство вывода (специальный файл /dev).
Далее идет сам скрипт smbprint. Он обычно находится в директории /usr/bin. Этот скрипт поставляется вместе с дистрибутивом исходного кода Samba.
У вас может появиться желание взглянуть на него более внимательно. Существует ряд мелких изменений, которые зарекомендовали себя полезными.
Большинство дистрибутивов linux поставляется с программой nenscript для преобразования ASCII-документов в Postscript. Следующий скрипт на perl делает жизнь пользователя легче, обеспечивая простой интерфейс для печати путем использования smbprint.
Используя smbprint для печати ASCII-файлов, скрипт следит за длинными строками. Если возможно, этот скрипт разрывает длинную строку на пробеле (вместо разрыва в середине слова).
Форматирование исходного кода выполняется с помощью программы nenscript. Она берет ASCII-файл и форматирует его в две колонки с заголовком (дата, имя файла и т.п.). Эта программа также нумерует строки. Postscript-документы уже отформатированы, так что печатаются сразу.