от CTEHATA(1-03-2006)

рейтинг (11)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

   Не ви ли се е искало да преминете на друга Линукс дистрибуция, даже от друга ОС на Линукс, но да не можете да си позволите да загубите време, т.е. да нямате работеща и настроена ОС за известно време?

Лиценз:CC Attribution-ShareAlike (http://creativecommons.org/licenses/by-... )

Автор: Александър Минчев

Авторът предупреждава че в резултат от негова грешка и/или от неправилно тълкуване или изпълнение на съветите по-долу, е възможно да унищожите всичката информация от вашите дискове. Цялата отговорност за евентуални проблеми е Ваша.



   В тази статия разглеждам един метод за "плавно" преминаване между две дистрибуции или от една ОС на друга. Основната цел на този метод е да позволи пълен достъп до работещата система през практически ЦЯЛОТО време на преминаването към новата ОС. За целта използваме някоя от наличните програми за виртуализация на компютър. Мой личен фаворит е VMware, чийто единствен недостатък е, че е със затворен код. В тази статия ще използвам VMware за пример, тъй като имам няколкогодишен опит с най-различни, доста екстравагантни начини да го използвам и ми е лесно да дам примери:). Държа да подчертая, че всеки може да използва съвсем законно VMware за един или повече 30-дневни периода. За цялата процедура по прехвърлянето са достатъчни няколко дни дори и при доста "спокойна" работа, така че - няма нужда да купувате/краквате/пиратствате каквото и да е.
   Ако някой, който познава по-добре друга програма за виртуализация желае, може да сподели своя опит. А ако някой желае да даде началото на flame  по повод затворения код - нека използва бутона "коментар" по-долу :)
   
   Описания метод е най-подходящ, ако използвате вашата система за множество задачи, имате инсталиран разнообразен или сложен за конфигурация софтуер, непрекъснатия достъп до работеща среда за разработка е жизнено важен за Вас или Вашата фирма и други подобни ситуации. Ако сте в състояние да преинсталирате ОС и настроите всичкия софтуер, който Ви е необходим за 2-4 часа, използването на подобен метод е непрактично (но все така интересно).
   Най-лесния начин да определите дали този метод е подходящ за Вас е да си представите една пълна преинсталация. Ако това предизвика появата на капки студена под по челото и треперене на един или повече крайници, най-вероятно си заслужава да прочетете статията. :)

   0) кратки инструкции. За тези,които са запознати с теорията и практиката на  виртуализацията, следните кратки бележки би трябвало да са достатъчни:
   - Освободете място и създайте  нов дял/дялове на диска;
   - Инсталирайте новата ОС във виртуална машина, която използва освободения дял/дялове;
   - По етапно  инсталирайте и конфигурирайте необходимия Ви софтуер на новата ОС;
   - прехвърлете необходимите данни и настройки
   - инсталирайте софтуер за виртуализация в новата ОС
   - Стартирайте новата ОС директно.
   - Стартирайте старата ОС, от оригиналния и дял/дялове във виртуална машина, работеща на новата ОС.
 

Всички, за които тези стъпки не са достатъчно ясни, могат да прочетат по-долу :)



   1) Освобождаване на място
   Щом ще трябва да инсталираме друга ОС - няма как, ще трябва да освободим място за нов дял (partition) на диска. В идеалния вариант разполагате със дял, който можете лесно да освободите за форматиране. В по-разпространения случай се налага да освободите някакво място на диска и/или да смалите един от дяловете, за да освободите място за нов. Най-щастливите от вас може дори да са решили да комбинират Промяната с чисто нов диск :)
   Този документ не  е ръководство за разделяне на диска на дялове, но Google знае доста за SysResque Linux, който се зарежда от CD-ROM и съдържа програмата parted и графичната и надстройка QTparted.

   ПРЕДУПРЕЖДЕНИЕ: пристъпването към преразпределяне на диска, без да сте архивирали поне най-важната информация е изключително безотговорна постъпка. Не отговарям за ничии данни, освен за моите си ... предупредени сте.

   Какви точно дялове ще създадете зависи само от това как искате да настроите новата си ОС. В някои случаи е доста подходящо след края на миграцията да монтирате /home и за новата си система. По подобен начин може да се постъпи и със swap дяла, но и за двете ще спомена по-надолу.

ВНИМАНИЕ: за тези които смятат да прескачат някои части: VMware както и всяка друга система за виртуализация на компютър НЕ ВИ позволява да използвате безнаказано един и същи дял от хост системата и от виртуалния компютър. Дори и да няма никакво предупредително съобщение, опитите за запис ще съсипят файловата система!

За простота в примерите по-долу приемам, че след освобождаването на място разполагаме с дял /dev/hda2 с големина 10G, който е предназначен за новата ОС и няма да се използват други дялове.

   2) Изтегляне на дистрибуция.
   Ако още не сте го направили, вече можете да изтеглите дистрибуцията, към която смятате да преминете. Не бързайте да пишете дискове, освен ако ви трябват и за нещо друго. С VMware (и с повечето други програми за виртуализация) можете да използвате .ISO файл записан на твърдия диск. За мен има смисъл - въпреки че по сантиментални причини имам записани всички версии на Slackware от 3.2 насам, не си спомням да съм инсталирал една версия два пъти на един и същ компютър. До (евентуалната) преинсталация сигурно ще мине доста време, така че защо да хабите време и празни носители?

   3) Инсталация на VMware, настройка на виртуалната машина.
   Тази точка е ИЗЦЯЛО посветена на VMware. Който смята да използва друга програма ще трябва да си "преведе примерите".
   VMware се дърпа от www.vmware.com. Има версия за Windows и за Линукс. След попълване на малко информация, на пощата Ви ще пристигне ключ за да го използвате (ееех, ако можеше да го GPL-нат ...). Инсталацията на VMware си е доста добре документирана и няма да се спирам подробно на нея. Само ще спомена че е нормално vmware-config.pl да каже че не намира предварително компилирани модули и да пожелае да компилира свои. Обикновено се справя доста добре с това.
   На тези които не са запознати с концепцията за виртуален компютър, препоръчвам да прочетат малко по-подробно документацията на VMware или да поразпитат доста по-безпристрастния Google. Wikipedia също има какво да каже, особено http://en.wikipedia.org/wiki/Virtual_ma... и http://en.wikipedia.org/wiki/Comparison... Без да агитирам за едно или друго решение, трябва да подчертая че клонирането на виртуални компютри, запазването на междинни състояния (snapshot), плавно нарастващите дискове и много други се срещат само или почти само при VMWare и затова не са включени в сравнителната таблица на Winkipedia.

   След като инсталирате VMware и го стартирате успешно, е време да създадете виртуалния си компютър. Основното, което трябва да се реши, преди да започнете е:
   
   Тип на твърдия диск (IDE или SCSI)
           Изберете тип, какъвто е типа на контролера на реалния компютър, за да ви е по-лесно прехвърлянето по-късно. Не забравяйте, че SERIAL ATA контролерите се разпознават от по-новите ядра като SCSI!
   
   Тип на CD-ROM устройството (реално устройство, ако имаме записани дискове или файл, ако ще ползваме ISO-та)
   
   Памет, която ще дадем на виртуалния си компютър
       За да прецените каква памет да заделите, следва да се ръководите от два противоположни принципа:
            - колкото повече памет оставите на реалния си компютър, толкова по-бързо ще работи старата ОС.
            - колкото повече памет заделите за виртуалния си компютър, толкова по-бързо ще стане инсталацията на  новата ОС.
            VMware предлага съвети за минимално и максимално количество памет, които са почти със силата на правило. Ако ги пренебрегнете, най-вероятно ще забавите твърде много работата или на целия компютър или само на виртуалния. Предложението за оптимално количество памет обаче не винаги е удачно. Както винаги - решението е на потребителя.
     
     Дялове, до които виртуалната машина ще има достъп.
            В нашия пример това е /dev/hda2. Ако сте решили да използвате повече от един дял (например за /home, /usr, /boot, /tmp, swap ...) - добавете имената им в списъка си. Ако искате да използвате дял, който използвате в момента и в новата инсталация, ще трябва да оставите добавянето му за по-късно.        

ВНИМАНИЕ: за тези които смятат да прескачат някои части: VMware както и всяка друга система за виртуализация на компютър НЕ ВИ позволява да използвате безнаказано един и същи дял от хост системата и от виртуалния компютър. Дори и да няма никакво предупредително съобщение, опитите за запис ще съсипят файловата система!

   Въоръжени с обмислените и премислени тип контролер за твърд диск, тип CD-ROM, количество памет и списък с дялове от диска, можем да пристъпим към създаването на нова виртуална машина. Помощникът на VMware ще Ви зададе въпросите, чиито отговори вече си изяснихте. Важните моменти са:
   - custom, а не typical инсталация
   - каква ОС ще използвате - не се шегувайте с отговора на този въпрос. Ако Вашия Линукс го няма в списъка, изберете "other linux-XXXX", където XXXX е типа на ядрото, което ще използвате. Ако излъжете VMware и той използва грешна или никаква оптимизация, нещата ще работят ВЛУДЯВАЩО бавно :(
   - name и location се отнасят за файла, в който VMWare ще запази настройките на виртуалния компютър и нямат никакво по-специално значение.
   - disk - изберете "Use a phisical disk (for advanced users)". Прехвърлянето на виртуален диск  върху реален е доста по-оплетена задача.
   - изберете "use individual partitions" а не "use entire disk". По този начин се защитавате от неволно повреждане на дялове, които се управляват от реалния компютър.
   - на следващата стъпка изберете отделните дялове. За съжаление VMware ги подрежда с имена Partition 1,2,3 а не hda1,5,6 или sda1,2,5,6 например. Проверете още веднъж дали случайно не използвате дял, който давате за използване на виртуалната машина! Ако сте под Линукс, демонтирайте дяла. Ако сте под Windows можете просто да сложите на дяла или дяловете тип 82(Линукс) и след рестартиране Windows няма да ги "закача".
   
   Преди да пуснете виртуалната машина, огледайте още веднъж настройките и. Може да откриете някоя грешка. Може да забележите нещо, което искате да промените. Когато пуснете виртуалната си машина за първи път, влезте в BIOS-а на виртуалния компютър (с F2) и задайте зареждане от CD-ROM.


 
   4) Инсталиране на ОС "във" Виртуална машина
    Това не е статия за инсталация на Линукс, ако имате проблеми със самата инсталация на конкретна дистрибуция, моля ползвайте търсачката или форума. В тази точка ще спомена само някои неща, свързани с особеностите на инсталирането във виртуална машина на VMWare (или друг софтуер).
   В случай че инсталирате от няколко диска, но използвате ISO файлове, за да "смените" диска, използвайте менюто "VM->Removeable devices" на самия VMWare. Разкачете виртуалния си  CDRom, изберете новия ISO файл и го закачете пак.
   Добре е да знаете, че ако инсталацията започне твърде много да бави компютъра Ви, а имате важна работа, можете да използвате "VM->Power->Suspend" за временно изключване на виртуалната машина. Когато сметнете за удобно, можете да използвате Resume за да продължите инсталацията.  
   Забележка: Повечето хора, на които съм показвал това са прекарвали следващите няколко минути да се радват на серии от Suspend и Resume. Не започвайте ако имате спешна задача :)

   ВНИМАНИЕ: Никога не забравяйте включени виртуални машини когато изгасяте компютъра си. Това е еквивалентно на изключване на захранването на виртуалния компютър. Естествено може да използвате Suspend/Resume за да не чакате твърде дълго и за изключване и за включване на виртуалния си компютър.

   5) Настройване на новата ОС

      5.1) Хардуер. При настройване на новата инсталация във виртуалния компютър, имайте предвид че хардуера който виждате не е "истинския". На по-късен етап, когато стартирате със новата си ОС но без VMware, Линукс ще "види" истинския Ви хардуер. Добре е да включите поддръжка в ядрото както за виртуалния, така и за реалния Ви хардуер.

      5.2) Как да заредим новата ОС?
   След рестартиране на ОС, която е инсталирана във виртуалната машина, е необходимо да се осигури някакъв "boot loader". Ситуацията с виртуалната машина изисква малко по-различен подход.

         - чрез някой гъвкав boot-loader. Доколкото знам GRUB би свършил работа. Проблема е че не мога да го понасям, затова и не го познавам и не мога да Ви дам съвет.
         - Чрез "boot loader"-а на текущата ОС.
   Например - ако текущата ОС е Линукс и използваме LILO, а новата система е на /dev/hda2, добавяме
other=/dev/hda2 във lilo.conf и преинсталираме LILO (най-добре в MBR).
   След това просто инсталираме boot loader-a на новата ОС на /dev/hda2 и по този начин си осигуряваме избор, като след това можем да модифицираме началното зареждане на новата ОС, без да "закачаме" старата.
         - чрез инсталационния диск на виртуалната машина. Ако сте оставили във виртуалното CD ISO файл, който ви позволява да управлявате зареждането, можете да го използвате (например linux root=/dev/hda2 ro noinitrd за Slackware). В крайна сметка при наличие на Suspend и Resume, надали ще рестартирате често :)
          -  За по-екстравагантните - можете да закачите виртуална дискета чрез VMWare и после да инсталирате LILO на нея :)))

      5.3) VMware tools. Ако имате повече работа по настройката на новата си ОС (най-вероятната причина да използвате този метод), е добре да инсталирате VMware Tools. Инсталацията им е обяснена кристално ясно в документацията на VMware. Ефекта от тях ще е:
            - Използване на по-високи разделителни способности
            - по-бърза (до гигабит) виртуална мрежа
            - По-удобно "излизане" от прозореца на VMware
            и много други.

      5.4) Прехвърляне на файлове. За прехвърляне на файлове използвайте средствата с които бихте прехвърлили файлове между два отделни (физически различни) компютъра - ftp, scp, samba, nfs ... дори запис на дискове (или ISO файлове :) Още веднъж: не се опитвайте да използвате един дял от две ОС едновременно! Принципно е възможно да използвате споделен дял, който никога не е монтиран и от двете ОС, т.е. го демонтирате от едната, преди да го монтирате на другата. Аз лично не го препоръчвам поради риска от грешка. Преценката за или против оставям на читателите.

      5.5) Прехвърляне на настройки. Ако искате постепенно да пренасяте отделни свои дейности (поща, браузване,разработка на софтуер и т.н.) на новата дистрибуция, можете да започнете да прехвърляте профили, конфигурационни файлове, библиотеки  и т.н. и да премахвате съответния софтуер от старата ОС. По този начин плавно и без сътресения можете да изпитвате отделните неща, докато се убедите че работят както трябва. Естествено вместо да триете старото копие, може да го оставите за известно време, докато се убедите че всичко е наред.
   За съжаление няма общи съвети, всичко зависи от конкретния случай. За тези които минават от Windows на Linux -  може би ще Ви е по-удобно ако започнете със софтуер, който познавате и използвате под Windows - например firefox, thunderbird, Open Office, xnView и т.н. По този начин ще започнете да се чуствате "в свои води" доста по-бързо. Едва след началното запознаване можете да започнете със преминаване към заместващи софтуери (Photoshop -> GIMP например)

      5.6) софтуера без който не мога! Ама в никакъв случай!
   Тази точка се отнася само за тези, които досега са използвали Windows. Колкото и достойни GPL заместители да имат повечето Win32 програми, някои са практически незаменими.
    Типични източници на проблеми са:
         - Среди за разработка на Windows софтуер.
         - Специализирани програми.
         - Програми разработвани някога от някого за Вашата организация и останали без поддръжка.
         - Програми, които управляват някакъв специфичен хардуер - везна, касов апарат и т.н.

   Проверете още веднъж дали няма свободна алтернатива.  Проверете дали работата на даден сложен пакет не може да се замени с две или повече по-прости свободни програми. Попитайте в някой форум. Потърсете в Интернет. Замислете се доколко използвате всички функции на даден софтуер? Има ли друг начин да постигнете същото?


    Често все пак проблема остава. Ето няколко начина да го решите:
         
         На първо място, ако е възможно, обърнете се към производителя на софтуера или към човека на който е платено да го напише. Попитайте ги за Линукс версия. В повечето случаи резултата ще е отговор "нямаме версия за Линукс". Ако представяте някаква организация е добре да осведомите фирмата производител че преминавате към Линукс и ще се наложи да потърсите нов доставчик на софтуер. Колкото и отвлечено да звучат тези съвети, това е единствения начин да накараме по-големите производители на софтуер да осъзнаят че има нужда от Линукс версии на някои програми.

      Ако това не помогне - за съжаление твърде вероятен сценарий, следващото добро решение е да използвате Wine. Това е програма, която позволява на Win32 програми да се изпълняват под други платформи. Това не е емулатор на компютър (като VMware) или на Windows. Това е софтуер, който изпълнява Win32 програми под Линукс. Все повече и повече софтуер може да работи изцяло или с малки недостатъци чрез WINE. Освен това самия Wine се развива сравнително бързо, така че можем да очакваме рано или късно да можем да използваме всеки WIN32 софтуер под Линукс.


      Ако сте "късметлии" и горните два съвета не ви помагат изцяло,както и за случаите, в които работата Ви наистина изисква използването на Windows, можете просто да оставите Windows да работи във виртуална машина на VMware! Това е изключително подходящо, когато някой специфичен Win32 софтуер Ви е необходим  само епизодично. За повече подробности разгледайте следващата точка.


   6) Инсталиране на VMWare във виртуалната машина и превключване към новата ОС.
   Бързам да поясня, че във виртуална машина на VMware не може да работи друга виртуална машина. Но Вие можете да инсталирате VMware без да го пускате, като по този начин намалите времето, през което нямате достъп до старата си ОС. В някои случаи, при успешна и пълна миграция можете да не използвате VMWare на новата ОС. Можете да прибегнете и към стандартната възможност за избор на ОС при стартиране. Всичко зависи само от Вашите нужди.
   След като се убедите още веднъж, че новия Ви Линукс е добре конфигуриран, можете да се опитате да го стартирате директно, в реалния компютър.
   Ако не сте използвали някой от първите два метода в т. 5.2) може да се наложи да заредите "аварийно" чрез някой самостартиращ CD-ROM. В такъв случай  решете проблема със стартирането и рестартирайте, за да използвате ядрото на новата си дистрибуция.
   Опитайте да стартирате X. Ако е необходимо, променете конфигурацията му, за да използва драйвера за реалния видео хардуер.
   След като стартирате X, пуснете VMWare и създайте нова виртуална машина, по начин подобен на описания в т.3). В тази виртуална машина ще стартирате СТАРАТА си ОС.

   При успешно изпълнени настройки в този момент отново имате достъп и до старата си система, което може да е с цел временно подсигуряване или да остане за постоянно.

 7) Използване на старата /home директория  или swap дял

      за да използвате старата /home директория е достатъчно да се убедите че числовите идентификатори на потребителите в старата и новата дистрибуция са еднакви. Ако сега добавяте потребители - задайте идентификатора изрично. Ако вече сте ги добавили - можете да използвате usermod за да ги промените. Ако имате опит и знаете какво правите, можете дори да копирате /etc/password, /etc/shadow и /etc/group от старата дистрибуция.
   След като решите проблема с номерцата, можете да добавите /home в fstab на новата ОС.

   За да използвате стария swap дял, е препоръчително да го приготвите с mkswap. Не съм сигурен колко и дали се променя формата на swap дяловете с различните ядра, но предпазливостта никога не е излишна, особено ако предишното Ви ядро е от по-стара главна версия.

   ВНИМАНИЕ: Убедете се че не използвате един дял от реален и от виртуален компютър! Проблемите, които могат да възникнат ако използвате един swap файл от две Линукс дистрибуции не са от най-забавните!
 

 8) отстраняване на VMware

   Ако не се нуждаете повече от VMware, след края на миграцията е препоръчително да го изтриете. Ако не използвате повече старата си ОС, можете да освободите нейните дялове, за да използвате дисковото пространство. Архивирането както винаги е добра идея :)
   
   


По време на написването на тази статия, автора инсталираше Gentoo на /dev/hda2, с размер 10G използвайки VMware.




<< Оптимизация на iptables и tc правила | GPRS в Linux >>