пятница, 28 ноября 2008 г.

howto: Использование файловой системы ext2 в ОС Windows

На данный момент ОС семейства Windows официально поддерживают следующие файловые системы:

FAT32
  • Поддержка на чтение и запись почти всеми известными ОС, а также многими "железяками"
  • Файл не может иметь размер более 4 Гб
  • Необходимость дефрагментации
  • Нет (свободных/бесплатных) средств дефрагментации под GNU/Linux
NTFS
  • Поддерживает журналирование (только под Windows начиная с NT 4.0)
  • Нет (свободных/бесплатных) средств проверки (fsck) под GNU/Linux
  • Необходимость дефрагментации
  • Нет (свободных/бесплатных) средств дефрагментации под GNU/Linux
  • Спецификации NTFS закрыты, и свободные драйвера для других ОС не дают никаких гарантий. Microsoft может в последующих версиях Windows изменить NTFS так что свободные средства не будут нормально работать с разделами созданными в этих версиях Windows, при этом конвертация существующих разделов может осуществляться автоматически без предупреждений.
В сложившейся ситуации использовать файловые системы, предоставляемые Windows, неудобно. Тем более если GNU/Linux - ваша рабочая система, либо планируется плавный переход, то после полного отказа от Windows поддержка ваших NTFS разделов в рабочем состоянии может вызвать серьёзные затруднения. Благо существуют реализации драйверов свободных файловых систем для Windows.

Файловая система ext2 совершенствовалась вместе с Linux, и вы можете встретить в сети устаревшие данные о её параметрах.

ext2
  • Свободная файловая система
  • Не требует дефрагментации
  • Поддерживается на чтение и запись ОС GNU/Linux, FreeBSD, Mac OS X (проекты ext2fsx и ext2fuse), Windows (проекты Ext2IFS и ext2fsd)
  • Поддерживает журналирование (при добавлении журнала становится файловой системой ext3)
  • На данный момент нет средства для проверки на ошибки под Windows
Итак существует два (по крайней мере только два активных на данный момент) проекта реализации драйвера файловой системы ext2 под Windows:
  • Ext2IFS - http://www.fs-driver.org/ Распространяется по лицензии as-is, бесплатна для любого использования. Поддерживает Windows NT4.0/2000/XP/2003/Vista/2008. О ней и пойдёт речь.
  • ext2fsd - http://ext2fsd.sourceforge.net/ Свободный проект, распространяется под GPLv2. Не пользовался, поэтому ничего о стабильности работы и процессе настройки сказать не могу.
Форматировать раздел в ext2 нужно в GNU/Linux. Для этого нужно использовать команду:
# mkfs.ext2 -I 128 -m 0 /dev/sda1
Внимание все данные на разделе будут удалены!
sda1 необходимо заменить на ваш диск и раздел (проще всего узнать запустив gparted).
Символ "#" означает что эти действия должны выполняться с правами суперпользователя (root).
-I 128 необходимо для указания испозльзовать Inode size 128, т.к. с умолчальным на данный момент Inode size 256 Ext2IFS работать не будет.
-m 0 для того чтобы отказаться от резервирования 5% объёма раздела для суперпользователя.

Созданный раздел первоначально нужно смонтировать под линуксом и установить на него права доступа. Я использую ext2 на разделах с фильмами, музыкой и монтирую их в /mnt.
# mkdir /mnt/store1
# mount /dev/sda1 /mnt/store1
# chgrp users /mnt/store1
# chmod g+w /mnt/store1
Мы смонтировали раздел и открыли полный доступ к нему пользователям, входящим в группу users (ваш пользователь должен в неё входить). При создании файлов из под линукс их владельцем будет текущий пользователь. При использовании Ext2IFS под Windows - владелец root, группа users. Поэтому проблем с правами доступа не будет.

Теперь установим Ext2IFS под Windows. Опции проставленные в инсталляторе по умолчанию менять не нужно: разрешена поддержка UTF8 и файлов большого размера. Смонтировать разделы (т.е. назначить им буквы) под Windows нужно через апплет IFS Drives в панели управления.
Ни в коем случае не монтируйте корневой раздел линукс, вы можете нарушить права доступа. Если вы хотите получить доступ к своей домашней директории, то вы должны вынести её на отдельный раздел.

Ext2IFS можно установить везде где угодно, и воспользоваться вашим жёстким диском с ext2fs.

Принимается конструктивная критика и дополнения.

Курьёз с поддержкой оборудования в GNU/Linux и Windows, звуковая карта M-Audio Revolution 5.1

Не так давно купил звуковую карту M-Audio Revolution 5.1. Эта мультимедийная карта, при своей низкой цене обладает качественным ЦАП AKM 4358 (такой же ЦАП стоит в профессиональных картах ESI Juli@ и M-Audio Audiophile192), и на мой взгляд является (в паре с достойной акустикой разумеется) лучшим выбором для любителя послушать музыку. Но речь не об этом.

Пришёл домой, вытащил пожилой Creative SB Live! 5.1. Использую Debian GNU/Linux lenny. Ядро тогда было 2.6.25. Воткнул новую звуковуху. Включаю комп, запускаю QMPDClient, звук есть только из правой колонки, что и указано здесь "The left stereo channel is always muted on boot.". Лечится изменением громкости (в любом микшере).
К этому времени ядро 2.6.26 как раз появилось в lenny, обновился. Перезагружаюсь, включаю музыку и всё отлично - играют обе колонки.

Дошли руки до установки драйвера в Windows XP SP2, заметьте - установки, в Debian ничего устанавливать не пришлось. Скачал последнюю версию драйвера, на тот момент 5.10, с поддержкой Windows XP SP3. Устанавливаю, перезагружаюсь, запускаю foobar2000 и что я слышу - играет только правая колонка! Лечится также подёргиванием ползунка изменения громкости, при том, только в фирменном микшере, изменение громкости в панели управления звуком никакого эффекта не производит.

И после этого жалуются на поддержку оборудования в Linux, в то время как у создателей этого оборудования руки растут неизвестно откуда.

Что ж M-Audio всегда славилась кривизной своих драйверов. Удалил драйвер, поставил с диска версию 1.0, и всё стало нормально (как в Linux).