---
title: Миграция Windows -> Linux на рабочих местах (Заметки путешественника) 
tags: migration
---

Некоторые детали:

ОС на рабочих местах - Debian 5.0 Lenny. Рабочие места используют сервисы сервера (MS Windows 2000):

* авторизация - Active Directory;
* приложения - RDP;
* совместное использование файлов.

План миграции в общих чертах 
-----------------------------

- Заменить Win32 приложения на кроссплатформенные аналоги, которые будут использоваться после перехода на Линукс.
- Обучение и привыкание пользователей. Решение возникших проблем несовместимости. Длительность курса лечения - по состоянию пациентов и загруженности докторов.
- Замена ОС с переносом файлов и профилей кросплатформенных приложений.
- Обучение, привыкание, решение проблемм...
- Profit!

Русские символы в имени и пароле пользователя для авторизации. 
---------------------------------------------------------------

Русские символы можно использовать при авторизации через winbind.  Авторизация через kerberos с русским паролем не работает. kerberos необходим только лишь для добавления компьютера в домен AD, для этого используйте учетную запись с паролем только из ascii символов.

No logon servers! 
------------------

На некоторых компьютерах при попытке входа пользователя AD в систему выдается ошибка: "No logon servers". Если перезапустить winbind, то авторизация начинает работать.

Причина - NetworkManager перезапускает сетевую карту после того, как gdm уже запустился. Попытка исправить это, повесив на события ifup и dhcp перезапуск winbind, не дает устойчивого результата. Самое надежное решение - удалить NetworkManager. Для стационарных рабочих мест с сетевой авторизацией нужды в этой программе нет.

Время 
------

По умолчанию ntp не устанавливается. Надо настроить синхронизацию времени. Иначе при расхождении времени в несколько минут перестает работать авторизация в AD и kerberos.

OpenOffice: поддержка форматов MS Office 
-----------------------------------------

Нужно установить последнюю версию OpenOffice. Причина одна - лучше взаимодействует с MS Office. Некоторые документы .doc могут не открываться OpenOffice'ом из Debian Stable. Установите OpenOffice из Unstable.

OpenOffice: редактирование таблицы, сохраненной 1С v7.7 
--------------------------------------------------------

Если сохранить отчет 1С как таблицу excel, открыть OO Calc, затем сохранить его в том же формате, то кодировка символов ломается. Чтобы кодировка не портилась, нужно сделать "Сохранить как..." и выбрать тип файла "Excel 97/2000/XP".

Обычно, пользователи забывают сделать это, при этом теряются внесенные ими данные. Это сильно портит всем кровь! Чтобы избежать этого, можно отучить OO экспортировать в файлы типа "Excel 5.0".

В файле `/usr/lib/openoffice/basis3.0/share/registry/modules/org/openoffice/TypeDetection/Filter/fcfg_calc_filters.xcu` для этого формата убрать флаг EXPORT.

    diff -C 1 orig/fcfg_calc_filters.xcu noexcel50/fcfg_calc_filters.xcu
    *** a/fcfg_calc_filters.xcu	2009-06-26 15:26:48.000000000 +1100
    --- b/fcfg_calc_filters.xcu	2009-06-26 15:31:51.000000000 +1100
    ***************
    *** 83,85 ****
      <node oor:name="MS Excel 5.0/95" oor:op="replace">
    ! 	<prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop>
      	<prop oor:name="UIComponent"/>
    --- 83,85 ----
      <node oor:name="MS Excel 5.0/95" oor:op="replace">
    ! 	<prop oor:name="Flags"><value>IMPORT ALIEN PREFERRED</value></prop>
      	<prop oor:name="UIComponent"/>

Не открываются файлы `*.shs`
----------------------------

Это файл MS Office. Может содержать все, что угодно.  OO его не умеет открывать и никогда, думаю, не будет этого делать.  Такие файлы нужно открыть офисом и сохранить в формат doc, xls, etc...

RAR-архивы
-----------

Для этого формата есть две версии программ: free и non-free. Свободная версия не поддерживает новые форматы файла. Надо подключить non-free репозиторий и установить из него unrar.

Письма MS Outlook 
-----------------

Outlook умеет делать такие письма:

    Content-Type: text/html; charset=windows-1251
    X-Mailer: Microsoft Office Outlook 11
    Content-transfer-encoding: 8bit
    
    <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
    <head>
    <meta http-equiv=Content-Type content="text/html; charset=koi8-r">
    <meta name=Generator content="Microsoft Word 11 (filtered medium)">

Обратите внимание на charset.  Свободные клиенты неправильно отображают такие письма.  В этом случае либо руками всякий раз указывать кодировку koi8-r, либо завести специальную папку, установить для неё кодировку и перекладвывать в неё такие письма.

Русская раскладка по умолчанию при входе в систему (gdm) 
---------------------------------------------------------

Исторически сложилось, что имя и пароль для входа в домен состоит из русских символов. И пользователи привыкли, что при входе в систему по умолчанию включена русская раскладка клавиатуры.

Чтобы сделать так, как все привыкли, надо:

- в xorg.conf делаем первой ru: XkbLayout = "ru,us";
- из-за того, что на первом месте теперь стоит ru, а не us, ломается обработка Ctrl+AnyKey в некоторых программах, которые считают, что первая раскладка всегда us.

Чтобы исправить, после входа в систему нужно опять делать us первой раскладкой:

- открываем DE -> параметры клавиатуры -> Раскладки и видим "Россия, США"
- удаляем "Россия", добавляем "Россия", получается "США, Россия". Или `setxkbmap -layout us,ru`, если в DE нет рафической настройки раскладки.

Отправка изображений почтой 
----------------------------

Пользователи привыкли к такому сценарию отправки изображений почтой:

- выделить графические файлы в проводнике;
- в контекстном меню выбрать "отправить...";
- в появившемся окне выбрать уменьшение размера изображений;
- в получившемся письме вставлены уменьшенные изображения.

Решение для Линукса. Требования: файловый менеджер, поддерживающий freedesktop, например, nautilus, bash, GraphicsMagick, zenity, icedove. Также в скрипт "жестко вбит" получаемый размер изображений. Файл `/usr/bin/sendpicture`:

    #!/bin/bash
    n=$#
    d=`mktemp -d /tmp/attachments.XXXXXXXXXX`
    echo -n > "$d/list.txt"
    (while [ -n "$1" ] ; do
       echo $((($n - $#) * 100 / $n ))
       f="$d/`basename "$1"`"
       gm convert -resize 800 "$1" "$f"
       echo -n "file://$f," >> "$d/list.txt"
       shift
    done) | zenity --title="Отправка изображений" \
                    --text "Уменьшение размеров изображений.\nВсего выбрано: $n шт." \
                    --auto-close --progress --auto-kill \
            && icedove -compose "subject=Отправка изображений,attachment='`cat $d/list.txt`'"

Файл `/usr/share/applications/sendpicture.desktop`:

    [Desktop Entry]
    Name=Send pictures
    Name[ru]=Отправить изображения
    Comment=Resize pictures and send
    Comment[ru]=Уменьшить размер изображений и отправить
    TryExec=sendpicture
    Exec=sendpicture %F
    Icon=document-send
    StartupNotify=false
    NoDisplay=true
    Terminal=false
    Type=Application
    MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp;

Теперь сценарий такой:

- в файлом менеджере выделить графические файлы;
- в контекстном меню выбрать открыть программой "Отправить изображения";
- будет создано письмо с вложенными уменьшенными изображениями.