Журнал LinuxFormat - перейти на главную

LXF112:Смена дистрибутива

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Смена дистрибутива

Хотите опробовать последние дистрибутивы, но боитесь лишиться нажитого непосильным трудом? Нейл Ботвик научит извлекать лучшее из обоих миров.


Последний официальный подсчет дистрибутивов Linux дал цифру «до хрена и более». Это хорошо, потому что дает богатый выбор, а выбор создает свободу, а свобода ведь хороша, верно?

Иногда может показаться, что выбор уж слишком велик, но несомненно, что огромное разнообразие дистрибутивов делает Linux интереснее. Однако апробация новых систем будет посложнее, чем эксперименты с очередным web-браузером, текстовым процессором или даже с окружением рабочего стола. Переход на другой дистрибутив означает форматирование по крайней мере части вашего жесткого диска и настройку системы с нуля. В зависимости от схемы разметки винчестера, это также может привести к удалению всех ваших личных файлов.

Для примерки нового дистрибутива достаточно виртуальной машины вроде VirtualBox, но, обретя систему своей мечты, неизбежно придется все снести и установить ее на самом деле. Процесс смены дистрибутивов довольно стандартен, независимо от устанавливаемой ОС, но различия в их внутренней организации означают, что без вариаций не обойтись. В качестве примера мы опишем переход с Ubuntu Hardy Heron на OpenSUSE 11.0, но основные шаги будут одинаковы для любых комбинаций дистрибутивов.

Основное препятствие на пути новой установки – переформатирование вашей файловой системы, уничтожающее все на ней. Для самого дистрибутива это хорошо, но как насчет личных данных? Самым веским капиталом при смене дистрибутива является наличие отдельного раздела для /home. Это не только защитит ваши личные файлы и настройки от гибели при установке другого дистрибутива, но и предоставит место для хранения полезной информации, вроде резервных копий ваших файлов настройки. Если отдельного раздела /home у вас нет, вам потребуется предварительно создать резервные копии всего и забыть об идее реально работающей системы с двойной загрузкой двух дистрибутивов.

Собственный /home

Хотя отдельный раздел /home – штука хорошая, и при переходе, и при двойной загрузке, вам не мешает также завести отдельный домашний каталог (/home/username) для каждого дистрибутива. Дело в том, что файлы настроек в вашем домашнем каталоге бывают привязаны к конкретной системе, окружению рабочего стола или версии программы, и применение их в другом дистрибутиве чревато проблемами. Поэтому вложим новый каталог в тот же домашний раздел и скопируем в него только файлы, которые хотим использовать совместно. Если у вас еще нет отдельного раздела /home, то пришла пора разделить ваши приложения и данные.

Строим /home

При работе с разделами диска и файловыми системами всегда имеется небольшой – но реальный – риск потери данных. Он не обусловлен используемыми вами программами; опасность в том, что процесс может быть прерван сбоем питания или крахом другого приложения. Если сомневаетесь, позаботьтесь сначала о резервных копиях. Работы с используемой в данный момент файловой системой также стоит избегать – лучше всего взять Live CD/DVD, и мы привлечем для этих целей Ubuntu.

Процесс состоит из трех этапов: изменение размера корневого раздела, создание в получившемся пространстве нового раздела /home и переноса личных данных. Будет проще, если у вас много свободного места – если ваш диск практически полон, переместите часть файлов на DVD или внешний диск. Затем запустите GParted из Система > Администрирование > Редактор разделов [System > Administration > Partition Editor]. Смонтированный раздел изменять нельзя, и если в GParted рядом с ним отображается точка монтирования, щелкните правой кнопкой мыши и выберите Отмонтировать [Unmount]. При изменении размера раздела обычно можно двигать только его правую границу, так что начните с перемещения конца корневого раздела влево до желаемого размера. Хорошей практикой считается заполнение раздела не более чем на 80%, поскольку забивание его до отказа может привести к фрагментации. Но раз уж после изменения размера вы собираетесь полностью удалить все содержимое каталога /home, вы, скорее всего, можете передвинуть этот ползунок в любую позицию. Можно также временно удалить раздел подкачки (swap) – установщик создаст для вас новый – щелкнув правой кнопкой и выбрав в меню Swapoff. Теперь создайте раздел в высвободившемся пространстве. Число первичных разделов ограничено четырьмя, так что старайтесь использовать логические разделы. Нажмите Применить [Apply] для запуска процесса – это та самая рискованная часть, когда компьютер лучше не беспокоить. После создания нового раздела, безопаснее вновь перезагрузиться с LiveCD, чтобы убедиться, что ядро знает об изменениях в схеме разметки.


Теперь надо переместить файлы из старого каталога /home на новый раздел. Это можно сделать от имени root, так что откройте терминал и, чтобы стать root’ом, введите sudo -i. Если корневой раздел – /dev/sda1, а новый раздел – /dev/sda6, то команды создания копии таковы:

mkdir -p /mnt/{root,home}
mount /dev/sda1 /mnt/root
mount /dev/sda6 /mnt/home
rsync -a /mnt/root/home/ /mnt/home/
rm -fr /mnt/root/home/*

Предполагается, что данных в домашнем каталоге относительно мало, иначе вы не сможете усечь корневой раздел до желаемого размера, и после переноса файлов зря пропадет много места. Если невозможно вывести что-то за пределы основного диска – скажем, на DVD или внешний накопитель, в качестве альтернативы можно создать новый домашний раздел в конце, урезав корневой, ровно настолько, чтобы уместились ваши файлы. После перемещения файлов можете еще больше усечь корневой раздел, а в освободившемся пространстве создать третий раздел и переместить в него ваш домашний каталог. Затем удалите раздел в конце диска и расширьте новый домашний раздел.

Сохраняйте настрой

Отдельный домашний раздел хранит в целости ваши пользовательские настройки, но как быть с теми общесистемными параметрами, которые вы тоже подогнали «под себя»? После долгих мучений с xorg.conf или Samba будет жаль, если настройки навеки пропадут. Такие данные хранятся в /etc, так что проще всего сохранить резервную копию этого каталога на вашем разделе /home. Команда

 sudo tar czf /home/ubuntu-etc.tar.gz /etc

упакует весь /etc в один файл в /home. Sudo необходим потому, что обычный пользователь не может читать /etc: там содержится важная информация, доверенная только суперпользователю. Вы можете скопировать каталог при помощи

 cp -a /etc /home/ubuntu-etc

но архив, пожалуй, удобнее. Искушение скопировать только необходимые файлы лучше подавить: позднее вы можете пожалеть о том, что какой-то из них пропустили. Архив /etc не отнимет много места – обычно это пара мегабайт.

Какие у вас программы?

После системных и пользовательских настроек, другим важным преобразованием системы является установка дополнительных пакетов. Отследить, что устанавливалось, довольно легко, но перенос всего этого на другой компьютер уже не столь очевиден из-за неодинакового управления пакетами в различных дистрибутивах: где-то используются пакеты по типу «все в одном», а где-то они разбиты на программу, библиотеки и отдельные файлы разработчика.

Еще одно затруднение: в вашем списке будут перечислены все установленные пакеты, и некоторые из них являются просто зависимостями – возможно, специфичными для дистрибутива – для других пакетов, которые вы можете желать или не желать устанавливать. Лучший совет – это просмотреть список пакетов, исключить очевидные зависимости, те, что начинаются с lib или заканчиваются на -dev или -devel, и отобрать программы, которые вам точно необходимы. Предоставьте менеджеру пакетов нового дистрибутива самому разбираться с установкой корректных библиотек и прочих зависимостей. Создание списка пакетов более всего определяется используемым менеджером пакетов, так что для любых ответвлений Debian воспользуйтесь:

 dpkg --list >packages.txt

Пользователи дистрибутивов на основе RPM могут сгенерировать его так:

 rpm --query --list >packages.txt

Вы можете укоротить список путем удаления всех пакетов lib* и тех, что имеют в своем имени -dev, поскольку они обычно устанавливаются как зависимости. Вот как создать этот список в Ubuntu (после 'ii' идут два пробела):

 dpkg --list | grep -v -e ‘-dev’ -e ‘^ii lib’ >packages.txt

Пользователям Gentoo достаточно скопировать файл world – /var/lib/portage/world – он хорош тем, что не содержит зависимостей: в нем только программы конечного пользователя.

Так можно охватить пакеты, добавленные через менеджер; а что делать с приложениями, установленными из исходных текстов или двоичных архивов? Последние обычно разворачиваются в собственный каталог в /opt, так что список содержимого /opt охватит и их:

 ls -1 /opt >binary_packages.txt

С пакетами, собранными из исходных текстов, немного сложнее, но все устанавливаемое при помощи ./configure && make && make install попадает в /usr/local, если только вы не указывали иное параметром --prefix для ./configure.

 ls -l /usr/local/bin >source_packages.txt

должно включить если не все, то большую часть собранных вручную приложений. Сохранив списки, вы сможете воссоздать набор программ в новом дистрибутиве.

Ставим новый дистрибутив

Хотя мы и собираемся пользоваться общим разделом /home, один и тот же каталог пользователя нам ни к чему. Версии одинаковых программ в разных дистрибутивах могут отличаться, а то и подстраиваться под специфику конкретной системы, и при совместном использовании всех файлов конфигурации ждите проблем; их можно избежать, взяв для новой установки другое имя пользователя. В противном случае следует переименовать домашний каталог в нечто вроде username-ubuntu. Лучше всего сделать это с LiveCD типа установочного диска OpenSUSE. По завершении инсталляции мы скопируем файлы данных, а также некоторые настройки.

Обезопасив свои пользовательские файлы и системные настройки, можете установить новый дистрибутив обычным способом, но велите воспользоваться существующим домашним разделом и не форматировать его – в нашем случае, установщик OpenSUSE чуть не грохнул оба раздела, и домашний, и корневой. Щелкните на пункте Создание разделов [Create Partition Setup] для указания, что где находится, и убедитесь, что будет отформатирован только корневой раздел. Дважды проверьте, что /home не пострадает, а затем продолжите установку как обычно.

Как качать права

Дождитесь завершения установки, перезагрузитесь – и окажетесь перед новым рабочим столом OpenSUSE (или другого установленного вами дистрибутива), настроенным под вашего нового пользователя. Если вы заглянете в /home, то увидите каталоги вашего пользователя и старого пользователя, который вы предварительно переименовали. Открыв окно свойств для каждого из них и перейдя на вкладку Права [Permissions], вы, вероятно, увидите, что они у них не совпадают. В случае перехода с Ubuntu на OpenSUSE имена пользователей будут одинаковы, а группы – разными. Причина в том, что файловая система Linux хранит сведения о владельце в виде чисел, которые преобразуются в имена пользователей и групп на основе информации из /etc/passwd и /etc/group. Даже если вы оставили старое имя пользователя, новый дистрибутив может отвести его другому ID пользователя (UID); то же касается и групп. С последними есть добавочный пируэт: одни дистрибутивы помещают всех пользователей в группу users, тогда как другие создают на каждого свою, с тем же именем, что и у пользователя.

Поскольку файлы из старого дистрибутива вы собираетесь использовать уже в новой ОС, следует привести их в соответствие с новым пользователем. Тут требуется доступ к терминалу и правам root. Если ваше имя пользователя jim, то выполните su, чтобы стать root, и введите chown -R jim: /home/jim-ubuntu

Параметр -R заставит chown рекурсивно применить изменения ко всем подкаталогам и файлам в /home/jim-ubuntu; разделитель : после имени пользователя велит chown установить группу пользователя jim в качестве основной. Если у вас более одного пользователя, повторите это для каждого из них.

Извлечение ваших файлов

Вот и причина, почему нельзя просто повторно использовать старый домашний каталог: если права владельца файлов достаточно разнятся, вам не удастся запустить даже оконный менеджер. Еще одна причина в том, что некоторые файлы – в частности, принадлежащие окружению рабочего стола – специфичны для дистрибутивов. Однако, теперь уже можно скопировать настройки для некоторых «стандартных», не зависящих от дистрибутива программ, например, OpenOffice.org, Firefox и Thunderbird. Им необходимы каталоги .ooo-2.0, .mozilla и .thunderbird, но Ubuntu называет их .openoffice.org2 и .mozilla-thunderbird, так что потребуется переименование. Каталоги можно перенести в терминале или файловом менеджере, но не забудьте включить опцию отображения скрытых файлов: файлы с именами, начинающимися с точки, по умолчанию в менеджере файлов не отображаются.

Вы можете также перенести такие файлы, как музыкальная и видеоколлекции, цифровые фотографии, документы текстового процессора и листы электронных таблиц – кстати, тут самое время прибраться, удалить старые файлы и организовать остальные в осмысленные каталоги, как вы обещали себе сделать несколько лет.

При желании скопировать все настройки окружения рабочего стола, вроде каталога .kde, сперва сохраните резервную копию исходной директории нового дистрибутива на тот случай, если не все пойдет по плану.

Темы, обои и шрифты

Если вы устанавливали милые сердцу обои, то, вероятно, захотите перенести и их, хотя темы имеют смысл только при том же окружении рабочего стола. Темы Gnome из Ubuntu вряд ли пригодятся в KDE 4 на OpenSUSE (а кстати, и темы KDE 3 тоже). Перенос темы – хитрая задача, потому что при ее установке файлы рассовываются по разным каталогам. Пропуск хотя бы одного из них может вызвать проблемы, так что безопаснее всего переустановить тему с нуля. Многие темы доступны в виде пакетов для различных дистрибутивов, а не то – загрузите их с http://www.kde-look.org, http://www.gnome-look.org и подобных сайтов для вашего любимого оконного менеджера.

Обои и системные звуки – это обычные графические и аудиофайлы, их можно использовать с любым рабочим столом и в любом дистрибутиве. Для обоев нет стандартного местоположения: они просто добавляются к списку доступных файлов или каталогов в программе настройки рабочего стола, вызываемой правым щелчком на нем. При работе в KDE, обои хранятся в .kde/share/wallpapers, но вы можете держать их где угодно; главное – помнить, где. То же справедливо и для системных звуков: стандартные, используемые в Gnome и KDE, устанавливаются в специальный каталог в /usr, но пользовательские звуки можно брать из любого места домашнего каталога.

Шрифты бывают установлены глобально или отдельно для каждого пользователя. Пользователи KDE могут ввести fonts:/ в адресной строке Konqueror, чтобы увидеть весь набор. Шрифты пользователя хранятся в .fonts в домашнем каталоге, и чтобы они стали доступны, всего и надо, что переместить их в новый домашний каталог. Если вы установили шрифты в системный каталог /usr/share/fonts или /usr/local/share/fonts, то до начала установки дистрибутива их следует скопировать в ваш домашний каталог, поскольку в /usr все будет удалено. Шрифты, расположенные в /usr/share/fonts, обычно добавляются через менеджер пакетов, и в принципе – пусть себе исчезают, потом вы установите их как пакеты для нового дистрибутива.

Перенос почты

Мы рассмотрели копирование личных данных и настроек, за одним важным исключением: электронной почты. Если у вас Thunderbird и вы намерены пользоваться им и в новом дистрибутиве, расслабьтесь – скрытый каталог .thunderbird мы уже скопировали. Обычно хорошей мыслью при смене дистрибутива является использование той же почтовой программы, что и ранее, потому что не все они хранят почту одинаково. Если клиент будет тем же, можно перенести каталог с почтой после переустановки, что позволит сохранить сообщения и настройки. Если вы желаете сменить программу и вы использовали POP3, потребуется экспортировать и импортировать вашу почту. Есть программы со специальной опцией экспорта; но в других вам следует выделить все сообщения и затем сохранить их виде mbox-файлов (практически все почтовые клиенты умеют импортировать такие). Если вы использовали IMAP, то все намного проще, поскольку вся почта хранится на сервере. Копии кэшируются локально для ускорения процесса, так что при первом использовании вашей новой почтовой программы будет небольшая задержка, пока она вновь загрузит копии ваших сообщений, но сами письма будут там же, где вы их оставили.

Создайте отдельный раздел для /home: это необходимо сделать лишь однажды, и смена дистрибутива перестанет быть столь изнуряющей задачей. Все упрощается при предварительном планировании, резервировании настроек и списка пакетов, а перейти с одного дистрибутива на другой без потери данных совершенно просто, что дает вам возможность опробовать столько систем, сколько Майк может впихнуть на DVD. Так что берите LXFDVD, и за работу! LXF

Двойная загрузка


Мы описали переход с одного дистрибутива на другой без потери ваших настроек и данных; но если вы еще не пришли к окончательному решению? Вы можете пожелать установить новый, но оставить и старый – вдруг ваше мнение изменится? Двойная загрузка нескольких дистрибутивов Linux столь же проста, как и Linux с Windows, но требуются некоторый предосторожности при совместном использовании ваших данных.

Прежде всего следует применять различные домашние каталоги, скажем, /home/jim-ubuntu и /home/jim-suse. Имена пользователей могут быть одинаковы; домашний каталог не обязан называться /home/username; и они должны иметь одинаковый ID пользователя. Следующим пунктом является загрузчик, поскольку большинство установщиков дистрибутивов не добавляют другие дистрибутивы Linux в свое загрузочной меню. Установите OpenSUSE или другой выбранный вами дистрибутив как обычно, затем, когда подойдете к установке загрузчика, выберите его установку в корневой раздел, а не в MBR диска. После перезагрузки вы вновь вернетесь в Ubuntu, так что вам потребуется добавить пункт SUSE в загрузчик Ubuntu. Откройте терминал и выполните

sudo gedit /boot/grub/menu.lst

для открытия меню загрузчика в вашем редакторе, и добавьте в конец файла такие строки:

title openSUSE
root (hd0,5)
chainloader +1

Пункт OpenSUSE добавится в загрузочное меню. Команда root сообщит, где искать установку SUSE. Grub начинает счет с нуля, поэтому hd0,5 – это шестой раздел первого диска, /dev/sda6 в терминах Linux. Команда chainloader заставит вызвать загрузчик с этого диска, что приведет вас в меню загрузки SUSE.

Теперь надо убедиться, что ID пользователей одинаковы: смонтируйте раздел SUSE

mkdir -p /mnt/suse
mount /dev/sda6 /mnt/suse

Затем найдите ваше имя пользователя в файле /etc/passwd в обеих системах:

grep jim /etc/passwd /mnt/suse/etc/passwd

Каждый файл должен содержать строку вроде

jim:x:1000:100::/home/jim-suse:/bin/bash

Первое число – это ID пользователя, а второе – ID группы; если они отличаются, вам понадобится отредактировать /mnt/suse/etc/passwd, сделав их одинаковыми. Проверьте /etc/group для обоих дистрибутивов, чтобы убедиться, что ID группы users в них совпадают. Затем запустите

chown -R jim: /home/jim-suse

При сохранении старого дистрибутива вы не сможете просто перенести каталоги с данными из одного домашнего каталога в другой: вам необходимы оба сразу. Ответ кроется в использовании ярлыков или символьных ссылок. Это позволяет одному каталогу (или файлу) оказываться в двух местах. Просто выполните

ln -s /home/jim-ubuntu/music /home/jim-suse/music

чтобы директория с музыкой появилась в обоих домашних каталогах. В KDE вы можете сделать это, перетащив иконку из одного домашнего каталога в другой, удерживая Ctrl и Shift в момент бросания. Повторите это для всех каталогов с данными, которые вы хотите использовать совместно, но для почты это сработает лишь в том случае, когда в обоих дистрибутивах применяется один и тот же почтовый клиент.

Персональные инструменты
купить
подписаться
Яндекс.Метрика