next_inactive up previous


Перенос системи на новий жорсткий диск

Андрій Добровольський (dobr@iop.kiev.ua)

Abstract:

Це новий, трохи розширений та адаптований до поточних реалій, варіант тексту, що фіксує мій власний досвід з переміщення робочих ОС на новий жорсткий диск. Текст став трохи більш детальним та враховує відмінності між ядрами серій 2.4 та 2.6. Трохи розписано використання parted для роботи з диском.

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

Мій особистий досвід, показав, що це зовсім не складно, як у Windows так і в Linux. Для забезпечення таких зручностей в першому випадку треба купувати програми сторонніх розробників. До складу Windows вони не входять. Для переносу системи під Linux, все є в складі Вашого установчого комплекту. Сам я працюю переважно в останній системі, тому викладу тут свої враження від переносу такої системи. Ну і приємно, що нічого докупати не треба. :-)

Зрозуміло, що треба під'єднати новий диск до системи фізично. Як це робиться, я писати не буду. Про це багато написано в різних комп'ютерних виданнях. Зауважу лише, що у випадку нових дисків краще використовувати 80-ти жильний шлейф та встановити обидва диски в режим - ``вибору шлейфом''.

Після розпізнавання нового диска БСВВ системної плати, треба розбити його під свої потреби з використанням одної з програм: fdisk, parted чи ще щось, що Вам більше до вподоби. В цій діяльності, взагалі, дуже добре допоможуть відповідні HOWTO та mini-HOWTO. Сам я їх прочитав в першу чергу. Може тому, ``переїзд'' на новий диск виявився таким легким та швидким. Добра збірка таких документів російською мовою зберігається на http://linux.yaroslavl.ru/ у відповідному розділі або на http://linux.ru.net/~RLDP/. Певною мірою, цей документ є вільним перекладом ``Мини-HOWTO. Переход на новый жесткий диск''. Але з певними варіаціями, скороченнями та доповненнями.

Під час переходу на новий диск, Ви маєте гарну нагоду розумніше організувати наявне вільне місце. З власного досвіду, рекомендую зараз зробити окремі розділи під /, /home, /var, /usr/local або /opt, якщо у Вас так ще не зроблено. Коли у Вас всі ці розділи вже є, то Ви розумієте про що я. Коли ні, скажу, що це дозволить Вам значно краще захистити власні дані (/home), зібрані та на місці встановлені програми (usr/local або /opt) та підвищить надійність системи (окремий /var). Ну і додаткові розділи на Ваш смак та потреби.

Розбиваємо новий диск

Не забудьте під час створення розділів вибрати саме новий диск. Як саме до нього звертатися зараз залежить від версії ядра з яким Ви працюєте. На ядрах нижче 2.6.х працює стара звична схема. Якщо він підключений як підлеглий на першому каналі IDE, це буде /dev/hdb. Ваш головний диск відповідно буде - /dev/hda. Ну і на другому каналі диски і все що замість них підключається до шини будуть головний та підлеглий: hdc та hdd відповідно, з префіксом /dev зрозуміло. Розділів на диску може бути багато. Їх нумерація підлягае певному правилу. Може бути лише чотири основних розділи, або три основних та один розділ розширення. Розділ розширення потрібен саме для того, щоб створити більше чотирьох розділів на одному диску. Основні розділи нумеруються від hd?1 до hd?4. Замість знаку питання треба підставляти потрібну літеру. Розділи в межах розділу розширення - від hd?5 до, та власне на скільки Вас вистачить. Сам розділ розширення забере собі один з наявних вільних номерів основних розділів, але ніде крім програм розмітки дисків явно ``світитися'' не буде. Саме тому можливо буде створити лише три основних, крім нього.

На ядрах серії 2.6.х з'явилася нова схема звернень до дисків. Тут ви можете звернутись до диска і через звичні /dev/hdX, і через /dev/discs/discX/disc де замість Х треба підставити 0 для першого диска на першому каналі IDE або 1 для другого на тому ж каналі.

Створення розділів та розміщення на них файлових систем залежить від обраного вами шляху (програми). Мені в цей раз сподобалась parted. Вона не має графічної оболонки як, скажімо, Partition Magic. Але, вона досить зручна, якщо до неї звикнути і пару разів вже мені ``лікувала'' таблиці розділів.

Parted

Отже, підключивши новий диск поряд з старим, запускаємо parted:

# parted /dev/discs/disc1/disc

GNU Parted 1.6.21 Copyright (C) 1998 - 2004 Free Software Foundation, Inc. This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Using /dev/discs/disc1/disc

(parted)
Останній рядок і є стандартним запрошенням від parted до ``спілкування''. Зараз Ви можете вводити команди до виконання. Першою раджу скористатися help. :) Далі -- за потребою.

Історично, я починав освоєння персональних обчислювачів IBM архітектури з DOS та Windows 3.Х, 9Х. І зараз в куточку жорсткого диска у мене все ще живе уламок цієї системи та пару розділів з успадкованими даними. Переносити їх у домашній каталог ліньки та й, про всяк випадок, чому б не мати ще й розділи з fat32? Отже, починаємо з

mkpart primary fat32 0.0 2000
Створюємо основний розділ з файловою системою fat32 на 2 Гбайти. Стандартно, parted міряє розмір розділу у мегабайтах. Надто точно вираховувати розмір розділу не варто, програма сама скорегує розмір до правильного. Якщо вам не сподобався результат, просто виконайте

rm <номер розділу(MINOR)>
Щоб оцінити результат скористайтеся командою print. Щоб створити розділ розширення просто замініть primary на extended. Щоб створювати розділи в межах розділу розширення, ставте тип logical. Пам'ятайте, що розділ розширення треба робити до кінця диска і він не може мати файлової системи.

Ще одна особливість полягає в тому, що я не зміг створити одною командою розділ та файлову систему на ньому для умовних розділів в середині розділу розширення. Проте скориставшись

mkfs <розділ> <тип файлової системи>
отримав бажане. Наступним сюрпризом була відмова програми створювати файлові системи ext3 та reiserfs. Для їх створення я скористався системними інструментами mkfs.ext3 та mkfs.reiserfs. Приблизно так

mkfs.ext3 /dev/hdbX

mkfs.reiserfs -l <мітка> /dev/hdbX
В другій команді використання -l <мітка> не є обов'язковим. Мені просто спало на думку позначити так точки монтування створених розділів. Може стане у нагоді в майбутньому. :)

Створивши розділ під операційну систему Windows я скопіював у нього розділ з системою з старого диска. Що це мені дало я не в курсі. :) Як я писав вище у мене вона не робоча. Наслідки невдалої спроби поновити версію з 98SE до XP. Це завершилося інформативним чорним єкраном, а розбиратися, що там їй не сподобалося та лікувати, все не знайду часу. Linux працює і мені цього досить. Коли фірма Microsoft нарешті навчиться писати інструменти розмітки диска для своїх ОС, спробую мабуть повернути її до життя. Раніше не маю бажання ризикувати своїм ЖД. Вони зараз чималенькі і перевстановлення всьго після ``кривої'' роботи їх версії fdisc надто довге задоволення. Та й не чіпати MBR, за наявною у мене інформацією, вони так толком і не навчилися.

Створивши потрібні розділи та файлові системи на них, перепишемо всю потрібну інформацію. Можна робити це за допомогою cp, як радить HOWTO. Все буде гаразд. Але, я все це написав колись, власне, заради цього моменту. Я скористався для цього rsync. Потужною програмою синхронізаціі каталогів на різних або одній системі. Як і рекомендує вже згаданий документ, монтуємо розділи нового диску в новий, для цих цілей створений, каталог та, відмонтувавши всі зовнішні файлові системи, кажемо:

rsync -avz <що копіювати> <куда копіювати>

Якщо ви змонтували кореневий каталог нового диска в /new-disk, то <що копіювати> буде, наприклад, /bin, а <куди копіювати> - /new-disk, отак:

rsync -avz /bin /new-disk

rsync -avz /sbin /new-disk

rsync -avz /home /new-disk

...

Це треба зробити для всіх потрібних каталогів. До не потрібних відносяться /proc та ще /sys у випадку використання ядра серії 2.6.Х. Нове ядро користується /sys як старе /proc. /proc воно теж користується... :) Тому, просто створіть ці каталоги з mkdir і залиште пустими.

Перший варіант документу було написано через певні проблеми першого переїзду. Тоді новий диск змусив мене ``пересісти'' на нову гілку ядер, 2.4.х. В них небуло тоді supermount до якого я встиг звикнути. В нових ядрах був autofs, але з ним ще треба було розібратися. Тому я вирішив, ще деякий час потренуватися ``на котиках''. Попрацювати на старому диску. Як ви певне здогадалися, autofs я налаштував. Але, паралельно, я суттєво оновив систему у зв'язку з виявленою помилкою в zlib. І, переді мною, встало питання. Проходити весь цей шлях знов, вже на новому диску чи, якось інакше?... Отут і став у нагоді rsync. Я просто повторив процедуру, що описував вище, і все. Завантажився з нового диска і продовжив працювати з того місця де зупинився. Адже, під час синхронізаціі, було відновлено і стан моїх поштових скриньок і все інше. Ура rsync!

Зараз я скористався тою версією щоб пройти весь шлях вдруге. Ні subfs, що прийшов на заміну autofs у нових ядрах, я не налаштовував. Просто працює і за старою схемою. Раз працює, то я і не втручаюся. :) Я про сам процес перенесення системи. І виконуючи роботу дійшов висновку, що розширити текст буде не зайвим і може стати у нагоді в майбутньому.

Цього разу, я скористався rsync і для копіювання fat32 розділів. Наче все гаразд. Я не дуже часто користуюся тими даними. Швидкий екскурс на ті розділи проблем не показав. А далі буде видно.

Запуск з нового диска

Залишилося відмонтувати новий діск від старого та завантажитися з нового. Ті, хто ``у курсі справи'', зауважать, що у мене нічого не вийде. Вони праві. Я ж нічого ще не зробив для формування MBR та встановлення початкового завантажувача на новий диск. Можна зробити все як радить оригінальне mini-HOWTO. Двічі поправивши lilo.conf чи що там Ви використовуєте. У мене одночасно стоїть більше ніж одне ядро і вносити ``прорву'' правок туди та назад мені було ліньки. Та й ймовірність помилки дуже велика. Я зробив простіше.

Відмонтував новий диск. Відєднав старий, виключивши спочатку систему звичайно ж. Приєднав новий як основний і завантажився з встановчого компакта від комплекту ALT Linux Master 2.X. Так трапилося, що це був діск від 2.2. Завантажився у rescue режимі. Відновлювач правильно визначив мій кореневий розділ та всю структуру файлової системи. Все це він змонтував у /mnt мінімальної системи, що підвантажується у оперативну пам'ять.

Мені залишилося сказати:
chroot /mnt
lilo
sbminst -t ru -d /dev/hda

Все. Після виходу з chroot та перезавантаження я пишу ці рядки. Вже з новим жорстким диском. Старий лежить на сусідньому столі. Раптом я щось забув та ще згадаю. :)

Звичайно ж lilo я командував після перевірки змісту /etc/lilo.conf та приведення у актуальний стан /etc/fstab. Просто на деяких розділах я змінив тип файлової системи. Мені здалося, що так буде доречніше. Життя покаже, чи був я правий. Ну і кількість розділів помінялася...

Остання команда помістила до MBR мого диска диспечер завантажень SBM (SmartBootManager). Я до нього звик і він мені подобається. Користувачі ALT Linux можуть встановити його з комплекту. Користувачі Windows знайти в Тенетах.

Гарантії та інше

Сподіваюсь, цей мій досвід стане в нагоді ще комусь. З цим і прощаюся, без усяких гарантій працездатності моїх рішень в усіх випадках життя. Ви можете використовувати все написане на свій власний розсуд і самі несете відповідальність за наслідки. Ну, власне, все як завжди у світі програмного забезпечення. ;-) Особисто мені, воно вже стало у нагоді.

Всі торгові марки та знакі є власністю їх власників. Авторські права на текст належать авторові.

About this document ...

Перенос системи на новий жорсткий диск

This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.70)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -no_subdir -split 0 -show_section_numbers my_new_hdd.tex

The translation was initiated by on 2005-07-28


next_inactive up previous
Andriy Dobrovol`s`kii (c) 2005-07-28