Автор Гілка: Ext2/3 пiд Linux и Windows одночасно  (Прочитано 1668 раз)

Відсутній SwitNJ

  • Новачок
  • *
  • дописів: 3
  • Карма: +0/-0
довго розказувати.. суть картини в чому.
переписую пiд лiнухом с помираючого NTFS харда iнфу на на новий, створивши на новому роздiл ext3. Планую тимчасово поюзати його на win доки не перероблю сервак на опенсусе де локаль буде 1251 (така вимога старих мережевих програм що працюють з базами). На вiндi гвинт пiдключиться через Ext2IFS - перевiрено - працюe добре.
Коротше... пїдєднав нтфс до тачки з сусе де 1251 локаль, файли побачив в правильній кодировці, скопіював на ext2 нового гвинта. відєднав, поставив на windows. приєднав через драйвер розділ - пройшло добре але кодування не те, бо windows файли назива 866 кодуванням :(. зворотня операціє визива ті ж самі крокозябли потім на лінуксі.
Драйвер дозволяє працювати в кодуванні UTF-8, але є питання до вас:
 чи можливо в лінуксі підєднати різні розділи у різному кодуванні? один у 1251 другий у УТФ-8 ? дуже треба ала спроби приводять до помилки маунта про те що опціі для фалової системи не підходять

Praporshic

  • Гість
Re: Ext2/3 пiд Linux и Windows одночасно
« Відповідей #1 : 2008-05-13 17:04:02 »
1. На "рідних" лінуксових ФС поняття кодування відсутнє взагалі. Воно вживається лише для "чужих" ФС (vfat/ntfs/etc).
2. А навіщо ставити системну локаль 1251 для мережевих програм?

Відсутній PAL

  • Графоман
  • ****
  • дописів: 317
  • Карма: +0/-0
  • Just linux admin
Re: Ext2/3 пiд Linux и Windows одночасно
« Відповідей #2 : 2008-05-13 17:21:39 »
По перше. Неможливо, бо поняття "кодування" у лінукс-ФС відсутнє
По-друге, НМД Ви неправильно підішли до задачі. Наприклад, для мене зовсім незрозуміла вимога до ОС працювати у він-локалі. Що за "мережеві програми"? Де вони мають запускатися? На сервері?

Давайте я Вам попробую викласти Вашу задачу :)

У вас є сервер (він), який Ви хочете мігрувати до лін. Цей сервер має віддавати до мережевих він-клієнтів деякі файлові ресурси через самба протокол. У якості мережевих клієнтів є якісь старі програми, написані, скоріш за все, на фоксі :)

Так ось. Локаль сервера немає жодного відношення до локалі мережевих клієнтів. Самба віддасть так, як треба (при правильному налаштуванні), незалежно від локалі сервера ;) Тож найкраще буде для сервера скористатися локаллю utf8

Але, якще вже так хочется, то можна сконвертувати імена файлів за допомогою convmv (одноразова операція)

Відсутній SwitNJ

  • Новачок
  • *
  • дописів: 3
  • Карма: +0/-0
Re: Ext2/3 пiд Linux и Windows одночасно
« Відповідей #3 : 2008-05-13 17:23:06 »
Все! Питання вирішив! Тему можна замикати.
Цитую:
Цитата
снимаем веник в винды и несем на линукс с локалью 1251: (у кого другая локаль - читайте man comvmv а также comvmv --list для списка кодировок)
0)мейкаем папку /mnt/data
  маунтим веник (раздел уже на ext3 и на нем файлы в 866 кодировке записаные после использования Ext2IFS!):
  mount /dev/sd[xx] /mnt/data

1) проверяешь на наличие ошибок в именах - вдруг есть имена которые по русски видятся нормально - их переименование вызовет необратимые крокозябрыи потерю данных соответственно. исправляете или переименовываете в английские названия.
convmv -f cp866 -t cp1251 -r /mnt/data
2) убедившись что ругани нет прога предложит как именно она переименует ваши файлы с русскими буковками, о чем выведет длинный скрипт в консоль, далее предложить пустить команду с ключиком на окончательное переименование, что и сделаем:
convmv -f cp866 -t cp1251 -r /mnt/data --notest
 (-r  -- для рекурсивного поиска фалов в директориях)
зашибись! сработало!
поделали все что нам нужно, конвертим взад (меняем местами 'f' и 't'!!):
convmv -t cp866 -f cp1251 -r /mnt/data
опять же таки смотрим чтобы не было ошибок в именах! ну и далее:
convmv -t cp866 -f cp1251 -r /mnt/data --notest

снимаем веник - несем на винду - ВУАЛЯ! И все дела! фуух... в WIKI!!!
« Змінено: 2008-05-13 17:31:50 від Cthulhu »

Відсутній gvy

  • Письменник
  • *****
  • дописів: 576
  • Карма: +0/-0
Re: Ext2/3 пiд Linux и Windows одночасно
« Відповідей #4 : 2008-05-13 19:38:25 »
1. На "рідних" лінуксових ФС поняття кодування відсутнє взагалі.
В JFS є, мо' й допоможе.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Ext2/3 пiд Linux и Windows одночасно
« Відповідей #5 : 2008-05-14 15:20:00 »
1. На "рідних" лінуксових ФС поняття кодування відсутнє взагалі.
В JFS є, мо' й допоможе.

JFS не рідна файлова система. Я думаю що більше підійде fuse-convmvfs:
Цитата
FUSE-Filesystem to convert filesystem encodings

This is a filesystem client use the FUSE(Filesystem in
USErspace) interface to convert file name from one charset
to another. Inspired by convmv.

З допомогою цієї віртуальної FS можна розглядати одну й ту ж FS в різних кодуваннях одночасно. Ще може допомогти mc з ALTLinux, якщо локаль 8-ми бітна (KOI8-U/CP1251/CP866/CP1125).
[Fedora Linux]