Полноценный доступ ко всем Linux-файловым системам в Windows 2000/XP/Vista/7 с помощью coLinux
В данной статье я расскажу вам, как получить практически полноценный доступ для чтения и записи ко всем файловым системам, используемым в Linux (Ext2/3/4, ReiserFS, XFS, JFS, etc) из-под сабжевых операционных систем. Статья является вольным переводом данного руководства, причем написано оно уже довольно давно, но догуглился я до него только сейчас. 🙂
Что из себя представляет данный способ?
Пожалуй, все слышали о проекте coLinux. Это ядро Linux, портированное и модифицированное для запуска из Windows, включающее в себя драйвер для преобразования системных вызовов Linux в вызовы Windows. Приложения Linux могут запускаться в coLinux без перекомпиляции, при этом потеря производительности приложений не наблюдается.
Мы же будем использовать coLinux-систему как промежуточное звено для доступа к нужным файловым системам. coLinux будет имеет прямой доступ к файловым системам, а из под Windows (здесь и далее — хост-система) они будут доступны при помощи Samba-сервера, настроенного на coLinux-системе (гостевой системе). Связь между гостевой и хост-системами будет осуществлена при помощи виртуального TAP-сетевого адаптера. Совместимость при этом будет практически полная, вплоть до редактирования прав доступа и проч. (естественно, в гостевой системе).
Достоинства и недостатки
Главное достоинство в том, что используется нативный Linux-драйвер файловой системы (так как фактически запущена полная копия Linux, и драйвер работает в этой среде). И поэтому будет осуществляться полный доступ к ФС без багов со стороны Windows, недоделанных, а то и вовсе нереализованных, возможностей Windows-драйверов, и т.д.
Первый недостаток плавно вытекает из достоинства: из-за того, что запущена полная копия Linux со всеми драйверами, сервисами и программами, количество свободных ресурсов хост-системы порой довольно сильно уменьшается, в особенности при обмене файлами.
Второй недостаток заключается в низкой скорости обмена файлами: скорость чтения из файловой системы XFS не превышает в среднем 5 мегабайт в секунду, а скорость записи — 7 (что довольно-таки странно).
- Скачиваем ядро coLinux здесь. Устанавливаем, например, в директорию C:\coLinux (далее в статье для примера будет использоваться именно она).
- Скачиваем один из образов установленной Linux-системы отсюда. Я предпочел Debian Lenny, и поэтому при предстоящей работе в гостевой системе будут использоваться команды, специфичные для Debian. Распаковать архив с образом нужно в директорию, куда установлен coLinux, в нашем случае C:\coLinux.
- Правим конфиг-файл debian-lenny.conf, расположенный в директории coLinux (мы же распаковали архив с образом в нее, так?). Снимаем символ комментирования (#) со строк #mem=256 и #eth1=tuntap
- Теперь необходимо прописать в конфиг имена нужных разделов для доступа к ним. Эти имена выглядят как \Device\Harddisk1\Partition2. Самый простой способ найти правильные имена для нужных разделов — это скачать Windows-port утилиты dd и с помощью команды:
dd —list
в командной строке Windows с правами администратора (естественно, находясь в каталоге с исполняемым файлом dd) ищем нужные нам имена разделов под словами NT Block Device Objects (малость неудобно, т.к. искать нужные разделы придется по размеру, который, к тому же, дан в байтах).
Итак, нужные имена мы нашли, теперь необходимо вписать их в конфиг. В конце конфига вписываем строки типа:
cobdX=\Device\HarddiskY\PartitionZ
где X — это порядковый номер файла девайса (он будет видет из-под гостевой системы в /dev), начиная с 3, а Y и Z — это номера диска и раздела в его Windows-имени. Например:
cobd3=\Device\Harddisk1\Partition2
И так для каждого раздела. - Заходим в свойства виртуального сетевого адаптера «TAP-Win32 Adapter V8 (coLinux)» (в WinXP — Панель управления — Сетевые подключения — ПКМ на адаптере — Свойства — Протокол Интернета (TCP/IP) — Свойства, в WinVista/7 — Панель управления — Центр управления сетями и общим доступом — Изменение параметров адаптера — ПКМ на адаптере — Свойства — Протокол Интернета версии 4 (TCP/IPv4) — Свойства) и выставляем IP-адрес 192.168.37.10 и маску подсети 255.255.255.0. Сохраняем настройки.
- Самый долгожданный момент — запуск гостевой системы. 🙂 Запускаем файл debian-lenny.bat из корневой директории coLinux и ждем, пока система полностью загрузится. Заходим в систему с логином root и паролем colinux. Создаем директории — точки монтирования разделов в гостевой системе. Редактируем файл /etc/fstab (с помощью vim или nano, по вкусу) и вписываем туда строчки для описания файловых систем для монтирования, например:
/dev/cobd3 /mnt/cobd3 xfs defaults 0 0
Тут все стандартно, отмечу только, что имя файла нужного раздела совпадает со строкой раздела в конфиге coLinux. После сразу монтируем все разделы с помощью команды mount -a. - Настроим виртуальный сетевой адаптер в хост-системе. Для этого добавим в файл /etc/network/interfaces следующие строки:
auto eth1
iface eth1 inet static
address 192.168.37.20
network 192.168.37.0
netmask 255.255.255.0
broadcast 192.168.37.255
Включаем сетевой интерфейс командой:
ifup eth1
Можно тут же пропинговать хост-систему (192.168.37.10), все должно работать без проблем. - Создаем обычного юзера командой adduser (напр. adduser user1) для того, чтобы предотвратить root-доступ к файлам из-под Windows
- Устанавливаем SSH- и Samba-серверы в гостевой системе:
apt-get install openssh-server samba
В конфиге Samba (/etc/samba/smb.conf) вписываем для каждого смонтированного раздела секцию такого вида:
[sharename1]
path=/mnt/cobd3
users=user1
read only=no
Меняем нужные параметры по-нашему. После редактирования файла перезапускаем Samba с помощью команды /etc/init.d/samba reload - Выбираем в контекстном меню на иконке «Мой компьютер» пункт «Подключить сетевой диск. ». Прописываем в качестве пути для каждого раздела \\192.168.37.20\имя_шары, где имя шары — это имя, прописанное в квадратных скобках в начале секции конфига Samba.
- В командной строке Windows (с правами администратора) в каталоге coLinux прописываем команду:
daemon.exe —install-service colinux @debian-lenny.conf
Тут же и запустим сервис: net start colinux. - Запускаем services.msc (Win+R — services.msc — OK), находим в списке сервисов colinux, дважды щелкаем на него, и в появившемся окне выбираем тип запуска — Автоматически. Сохраняем.
Просмотр разделов Linux в Windows
За что мне нравится Linux — так это за свою универсальность и адаптивность. Если вы установите Windows и Linux на одном компьютере, то загрузившись в Linux вы будете легко видеть все разделы Windows и даже сможете работать с ними, как с родными.
Но вот если вы загрузитесь в Windows, то Linux вы вообще не увидите, как будто его нет. Печально:(
Linux — Установка Ubuntu рядом с Windows. (UEFI+GPT)
Поэтому просмотр разделов Linux в Windows очень актуален для тех, кто пользуется двумя системами одновременно, как Я, например:)
Как же из Windows увидеть жёсткий диск (вернее его область) отформатированный в файловую систему Linux — ext2, ext3 или ext4? Без дополнительного софта не обойтись и он есть.
И такой софт есть, и его даже достаточно, но какие-то утилиты очень мало функциональны, а какие то проекты уже давно заброшены. Но всё же мне удалось найти кое что достойное внимания.
Самый простой способ — это просмотр разделов Linux в Windows при помощи утилиты ext2read (ext2explore), которую можно скачать по этой ссылке :
Программа проста до безобразия и позволяет просматривать Linux разделы и копировать с них файлы. И всё, изменять файлы на Linux разделах и копировать их туда вы не сможете. Так что если вам нужен такой минимум, то программа для вас.
Внимание! Если ваш домашний каталог зашифрован, то вы не сможете попасть в него с любой программой!
Поэтому, если вы часто перемещаете файлы между системами, то сделайте в Linux дополнительный, не зашифрованный раздел.
Но это конечно не всё. Есть ещё одна программка, которая заслуживает нашего внимания — это ext2mgr, которую можно найти тут:
Эта программа делает больше: она создаёт новый раздел и монтирует к нему раздел Linux. То есть у вас в Windows появляется новый жёсткий диск в системе, который на самом деле является Linux разделом.
И вот с ним вы сможете делать то, что заходите.
Как установить ext2mgr и подключить потом Linux раздел в Windows?
Скачиваем программу и распаковываем архив. В распакованной папке запускаем исполняемый файл:
После этого нам покажут все разделы, которые у нас есть на компьютере:
У меня показывает разделы Linux, которые есть на ноутбуке и один раздел на внешнем жёстком диске — DISK — 1. Я хочу при монтировать именно его. Клацаем по нему и у нас появляется такой диалог:
Видим кнопку примонтировать — нажимаем её и у нас появляется новый диалог:
Выбираем свободную букву диска и ставим или убираем нужные галочки. Всё, теперь перезагружаем компьютере — ну как без этого в Windows и в МОЙ КОМПЬЮТЕР наблюдаем появление новых дисков:
Если вы сделали всё правильно, то диск должен появится и с ним можно будет начать работать.
Но опять же, будьте осторожны, чтобы не удалить разделы. Мне это как то удалось, когда я готовил материал для этой заметки. После этого я писал статью о том, как восстановить разделы жёсткого диска🙂
На самом деле есть ещё программы подобного рода, если вы знаете более лучшие, то поделитесь своим мнением, которому тут всегда рады:)