Налаштування Linux – перенесення на інший диск

Часто буває потрібно вже налаштовану операційну систему Linux перенести на інший диск разом з усіма рюшечками, бубонцями і свистульки. Перенести Linux з одного диска на інший досить просто, але тут є декілька моментів, чому дана записка дебіанщіка і присвячена.

Геометрія дисків джерела і приймача збігається.
Якщо геометрія жорсткого диска з Linux і нового диска однакова (новий вінчестер на комп'ютері точно такий же), то можна використовувати наш улюблений старий-добрий dd.
Для цього залогініваемся як root (або використовуємо sudo) і пишемо в консолі:


# dd if=/dev/sda of=/dev/sdb
тут
Для прискорення процесу можна задати копіювання великими блоками ось так:

# dd if=/dev/sda of=/dev/sdb bs 1048576
Після закінчення копіювання диск-приймач готовий до вживання – хіба що можна створити на ньому іншого користувача або відредагувати вже наявного (про що див. нижче). До речі, якщо замість / dev / sdb вказати звичайний файл начебто linux.img, то ми отримаємо образ диска c Linux і можемо використовувати його для роботи у віртуальних машинах.

Різна геометрія дисків джерела і приймача.
Це призведе до того, що попередній варіант буде неефективний і нам терміново потрібен інноваційний прорив. На щастя, це зажадає лише кілька простих рухів тіла, так що ми зараз прорвемося і відчайдушно ввірвіться в наше світле лінуксовий щастя.

1. Розмітка вінчестера і створення файлової системи.
Для створення таблиці розділів в Linux використовуємо команду cfdisk (є докладний опис по розмітці дисків в Linux):

cfdisk /dev/sdb
Натискаємо на New, створити розділ. Вибираємо Primary (основний), коли він створиться, натискаємо Bootable (якщо потрібно, щоб він був завантажений). Після цього треба відформатувати розділ (наприклад, у надійну і стабільну файлову систему EXT3):
sudo mkfs -t ext3 /dev/sdb1
Якщо ж вам потрібно перекроїти розділи, скажімо, для установки Windows і Linux на одній машині, краще всього скористатися Live CD Gparted. Тепер можна починати копіювати файли з одного диска на інший.

2. Перенесення Linux на інший диск або розділ.
Наприклад, диск-джерело, на якому зберігаються всі файли, це / media / debian – туди примонтувати IMG-образ системи, яку треба залити на свіже розділ. Тепер монтуємо диск-приймач куди-небудь в затишне місце (щоб дані рекурсивно не копіювалися), наприклад в порожній в Debian каталог / srv

mount -t auto /dev/sdb1 /srv
Переходимо в каталог / media / debian / і, перебуваючи в цьому каталозі, вводимо довгу команду в один рядок:

cp-a bin / boot / etc / home / lib / opt / root / sbin / tmp / usr / var / / srv
Тут сірим виділені опціональні каталоги / home та / tmp: скопіювати їх можна, якщо вони вам потрібні (наприклад, можна захотіти зробити нового користувача в новій системі).

3. Досоздаем каталоги: / dev / proc / srv / sys / mnt
Копіювати ці каталоги НЕ ТРЕБА, замість це досоздаем порожні каталоги для них – це все псевдо-файлові системи (окрім / mnt природно).

Так само варто поміняти / srv / etc / fstab на предмет монтування кореневого каталогу – якщо новий диск буде визначено як / dev/sda1, а в fstab буде вказаний / dev/hda1, ядро цього не зрадіє і не завантажиться (Що не страшно при використанні завантажувача grub). Так само вносимо зміни в / srv / etc / fstab нової системи на предмет підключення swap-розділів або файлів. Наприклад, якщо новий своп-розділ буде знаходитися на другому розділі нової системи, пишемо:

/dev/sdb2   swap    swap    defaults    0  0
Після цього залишилося тільки встановити завантажувач Linux.

4. Установка завантажувача Linux.
Це досить просто зробити, завантажившись хоча б з Knoppix. Наприклад, при використанні завантажувача GRUB даємо команду:


/sbin/grub-install –root-directory=/srv –recheck /dev/sdb

Тут /dev/sdb це диск-приймач (на який копіюємо систему). Так само можна встановити завантажувач за допомогою chroot:



chroot /srv grub-install /dev/sdb


Зразки конфіги, якими можна і потрібно скористатися, повинні бути на диску-джерелі. У загальних рисах процес закінчений – можна спробувати завантажитися з нової системи і навести фінальний марафет – наприклад, додати нових користувачів.



Додаємо, міняємо і видаляємо Linux-користувачів у новій системі
Для цього залогініваемся root-ом і починаємо боротьбу з користувачами.

useradd – додати нового користувача

Приклад – додати користувача roger:




useradd -gusers -Gmgmt -s/bin/sh -pxxxx -d/home/roger -m roger



Опції:



  • -d домашній каталог
  • -s задати стартову оболонку (/ bin / sh)
  • -p пароль
  • -g основна група, до якої приписується користувач
  • -G інші групи до якої приписується користувач
  • -M створити для користувача домашній каталог


userdel – видалити користувача

userdel -r roger



Опції:



  • -r видалити користувача разом з домашнім каталогом


usermod – модифікувати дані про користувача

Опції:



  • -d домашній каталог
  • -s задати стартову оболонку (/ bin / sh)
  • -p пароль
  • -g основна група, до якої приписується користувач
  • -G інші групи до якої приписується користувач


passwd – модифікувати пароль користувача

Опції:



  • ім'я_користувача (Для зміни пароля користувача ім'я_користувача)

Весь процес перенесення системи займає від півгодини до години включаючи перекури.

Позакласне читання
Їжа для роздумів і медитацій в різних інтернет смачна й багата: про клонування встановлений систем, а так само про деякі способи копіювання Linux.

Так само представляє інтерес метод з LVM, привнесений в процесі дискусії ув.тов.Анонімусом:
1) Створити LVM розділ на новому вінчестері (fdisk).
2) Включити його в vg групу (vgextend).
3) Перемістити всі PE зі старого вінчестера на новий (pvmove).
4) Видалити розділи на старому вінчестері з vg групи (vgreduce).

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*