| LINUX-BG Адрес : http://www.linux-bg.org |
| Миграция на работеща Debian система на нов твърд диск с LVM2 |
|
От: Hapkoc Публикувана на: 19-10-2006 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=387001593 |
|
Миграция на работеща Debian система на нов твърд диск с LVM2
Александър Илиев < sasoiliev [at] mamul.org > Copyright © 2006 Александър Илиев Лиценз: CC Attribution-ShareAlike 0. ВъведениеНаписах тази статия с цел да улесня хората, които евентуално биха се пробвали да извършат въпросната процедура. Историята покрай статията е следната - закупих си нов твърд диск, но т.к. нямах желание да преинсталирам цялата система реших да я мигрирам. Прецених също, че имайки вече доста дисково пространство ще е грехота да не ползвам LVM, имайки предвид предимствата, които дава. Тук съм описал стъпките, които се оказа, че трябва да се извършат за да премине една такава миграция успешно. ВНИМАНИЕ: Има много голям шанс да загубите данните си в следствие използване на команди и програми, цитирани в този документ. Използвайте документа на собствена отговорност. ВНИМАНИЕ2: Навсякъде, където има използван символ '#' (диез), се има предвид, че посочената команда се изпълнява като потребител root, а самият диез не се пише в командния ред! 1. Описание на дадените условияВ моя случай условията бяха следните: 20GB IDE HDD с инсталиран Debian GNU/Linux testing/unstable, без LVM Целта беше да се прехвърли работещия Linux на новия диск и да се пусне под LVM. 2. Подготовка на диска и разделяне на дяловеВ моя случай реших да "делегирам" целия диск на LVM, оставяйки само един 200MB дял за /boot. Може би има вариант и този дял да се включи в LVM, но не мисля че си струва усилията. И така, създаваме един първичен дял за /boot и още един първичен дял за LVM дяловете:
Създаваме файлова система на /dev/sda1:
За работа с LVM2 в Debian трябва да се инсталира пакета lvm2 (заедно със зависимостите си). Този пакет съдържа програмите, необходими за конфигуриране на LVM2. След като е инсталиран въпросният пакет трябва да подготвим диска за работа с LVM, а именно да създадем physical volume(s), volume group(s) и logical volume(s). LVM може да работи с цели дискове (напр. /dev/sda), дялове (/dev/sdaX), мета-устройства (напр. софтуерен RAID) и loopback устройства. В моя случай LVM работи с дял, а именно /dev/sda2. Първата стъпка е да се създаде physical volume, с който ще работи LVM:
След това се създава volume група:
(system е името на групата, с което в последствие ще се обръщаме към нея. Можете да изберете друго по ваша преценка.) Накрая създаваме логическите дялове в създадената група:
С -L задаваме размер на дяла (в KB, MB, GB или TB, съответно със суфикс K, M, G или T). С -n задаваме име на дяла. Последния параметър е името на volume групата, към която да се създаде дяла. (Не знам доколко добра идея е swap дяла да е включен в LVM, ще се радвам на коментари.) 4. Създаване на файлови системиСлед като имах логическите дялове, трябваше да създам файлови системи на въпросните дялове:
(Забележка: избора на начин за разделяне на дялове и избора на файлова система е по желание и преценка на клиента.) 5. Създаване на нов initrd imageТова е вероятно най-важната стъпка. За да може да зареди системата от новият LVM root дял трябва да се изгенерира ново initrd изображение, което да може да активира LVM преди да е монтиран root дяла. Всъщност това става много лесно. Първо най-добре си направете резервно копие на работещото изображение:
След това можете да обновите въпросното изображение ето така:
Това ще включи необходимите скриптове и изпълними файлове за работа с LVM в initrd изображението. 6. Копиране на системата на новите дяловеМонтираме /home дяла от новия диск и копираме данните на потребителите на него:
Монтираме /boot дяла (/dev/sda1) и копираме съдържанието на /boot директорията там:
Копираме основната част от системата:
Тук пропускаме директориите /cdrom, /dev, /home, /mnt, /proc и /sys, т.к. това са точки на монтиране на други дялове или псевдо файлови системи. Тях ще създадем на ръка:
Тази част е малко чувствителна към грешки. Първо трябва да се смени пътя до root файловата система. Това става чрез промяна на kernel реда в /boot/grub/menu.lst. В моя случай трябваше да се промени реда:
на
Второ, ако преди миграцията, /boot не е била на отделен дял, ще трябва да редактирате файла /boot/grub/menu.lst, като промените пътищата до ядрото и initrd изображението, така че да се получи нещо такова:
Забележете, че при заредена операционна система можете да се обръщате към LVM дяловете по този начин: /dev/system/rootили в общия случай: /dev/<volume-group>/<logical-volume-name>докато при подаване на root файлова система към ядрото трябва задължително да се подаде във вид: /dev/mapper/<volume-group>-<logical-volume-name>(в конкретния случай: /dev/mapper/system-root). Третото нещо, което трябва да се направи, е да се промени по подходящ начин параметъра root на GRUB. Самата стойност на параметъра зависи от конфигурацията на вашия BIOS, а именно от коет устройство е настроен да зарежда компютърът. В моя случай това е SATA диска, т.е. от гледна точка на GRUB той се явява (hd0). Съответно в menu.lst за записва:
т.к. /boot дялът ми се намира на /dev/sda1. Това, което остава е да инсталираме самият GRUB в MBR на SATA диска. За да извършим това коректно може да се наложи да стартираме GRUB с параметър --device-map. Чрез този параметър указваме на GRUB да прочете от файла, който му подадем, съответствията м/у Linux устройствата в системата и GRUB устройствата. В моя случай създадох файл device.map, който съдържаше следното: В моя случай там пишеше:
като файла, в който описах нещата се казваше /root/device.map По този начин указвам на GRUB, че въпреки, че /dev/hda е настроен в BIOS така че GRUB да го вижда като (hd0), аз искам (hd0) да е /dev/sda. Тук е добре да се уточни, че става дума за момента преди да рестартираме системата и да променим настройката в BIOS, още докато сме в системата, която е инсталирана на IDE диска. След като сме описали това съответствие, стартираме grub по следния начин:
Вече имаме инсталиран GRUB в MBR на SATA диска. Забележка: добре е новият device.map да се копира в /boot дяла (в случая /dev/sda1):
Логично трябва да променим /etc/fstab на SATA диска, така че да отразява монтирането на LVM дяловете, вместо тези от /dev/hda:
В моя случай новият fstab заприлича на нещо такова:
Сега би трябвало да е направено всичко необходимо, за да заредим операционната система от SATA диска. Рестартираме машината, променяме в BIOS първо да зарежда от SATA диска и чакаме да се зареди новата система. 10. Възможни проблеми
<< Vodafone Mobile Connect под Линукс | Домашната безжична мрежа и ADSL на БТК >> |
|
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|