Поправка на системата: HowTo chroot

Много пъти, особено когато се бъркаме, сме се оказвали в затруднение, че нямаме достъп до системата, за да я поправим, но решението е лесно: използвайте командата chroot от който и да е LiveCD / RepairCD.

На много места (форуми, блогове ...) се споменава тази команда и се дава „копиране / поставяне“ на кода, но намерението ми с тази публикация е да обясня малко тези стъпки, за да използвам добре този инструмент със знания на каузата.

Въвеждане

Командата chroot Той е известен като CHangeROOT, тоест команда, която ви позволява да промените корена на системата, върху която работите. С други думи: ако сте от LiveCD и искате всичко, което работите на конзолата, да има ефект върху инсталираната система, първо трябва да използвате chroot.

Проблемът е, че не е достатъчно да се използва chroot Като такива, първо трябва правилно да монтираме определени дялове.

КАК ДА

Първо трябва да стартираме терминал или от друга инсталирана система (на друг дял / диск), или от LiveCD. ВАЖНО: архитектурата на LiveCD трябва да съвпада с тази на системата, която ще бъде ремонтирана (32 или 64 бита).
След като сме в терминала, ще започнем да идентифицираме нашите дялове:
fdisk -l

  • С тази команда ще изброим всички наши дялове / дискове. Трябва да идентифицираме кой е целевият дял, където е инсталирана нашата система за ремонт, оттук нататък ще го извикаме счупена система.

За този пример ще разгледаме, че нашата счупена система е в / Dev / sda1 .

Продължаваме да сглобяваме системата. Първо ще създадем папката, в която ще работим, а по-късно в тази папка монтираме дяла, където се намира нашата счупена система
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Ако имате папката / Home o / Var или друг на друг дял, трябва да го монтирате, както следва:
mount /dev/sda2 /mnt/my_linux/var

  • ЗАБЕЛЕЖКА: Взех за пример дяла / dev / sda2 за папката / var, оставете всеки да коригира кода според своите характеристики.

Обикновено това би било достатъчно, ако просто трябва да редактирате файлове на ръка, но ако искаме да изпълним някои команди, които конфигурират системата, трябва да монтираме определени специални системни папки: / разработка, / проц/ sys.
mount -t proc proc /mnt/my_linux/proc
mount -t sysfs sys /mnt/my_linux/sys
mount -o bind /dev /mnt/my_linux/dev

  • С опция -t казваме монтиране типа „файлова система“, който искаме да монтираме. Необходимо е да го посочите поради специалния характер на папките / проц y / sys.
  • С опция -o ние посочваме опциите на монтиране. Опцията обвърже служи за "връзка". В UNIX всички хардуерни устройства са достъпни през папката / разработка, затова трябва да монтираме тока си / разработка в папката, където сега е нашата счупена система. Тъй като тази папка вече е монтирана, е необходимо само да се каже монтиране където е монтиран първоначално.

Това се прави по този начин, така че chroot Достъп до тези папки сякаш са счупена система, въпреки че те трябва да са от текущата система (напр. Сесията LiveCD), тъй като те са свързани със състоянието на системата, процесите и хардуера.

Сега е моментът да се използва chroot:
chroot /mnt/my_linux/ /bin/bash

  • Командата се предава като аргументи на пътя на новия корен «/» (което в нашия случай е / mnt / my_linux) и конзолата, която искате да използвате (в този случай сме избрали добре познатия bash, намерен в / bin / bash). Ако не посочим конзолата, ще се озовем пред малко архаичен интерпретатор на команди (той не се запълва при натискане на раздела и т.н.).

Сега можем да използваме конзолата, сякаш стартирахме коренната сесия в нашата счупена система (редактиране на файлове, проверка на скриптове, инсталиране / деинсталиране на пакети ...). ВНИМАНИЕ! За да влязат в сила промените, трябва да демонтирате файловата система след излизане chrootВижте примера по-долу.

Повече информация в https://wiki.archlinux.org/index.php/Change_Root (повече от препоръчаното четиво).

Пример за употреба: възстановяване на GRUB2

Едно от най-широко разпространените приложения на chroot Той е като инструмент за ремонт на GRUB. Тъй като ако се повреди, практически е невъзможно да заредим системата ни, за да я поправим.

ЗАБЕЛЕЖКА: този малък урок е само пример, той работи върху различни дистрибуции, получени от Debian, Ubuntu и openSUSE, наред с други. Въпреки това проверете документацията на вашата дистрибуция, тъй като в много от тях командата не е намерена актуализация-grub.
# ЗАБЕЛЕЖКА: тези команди се изпълняват веднъж в chroot.update-grub
grub-install /dev/sda

  • с актуализация-grub Актуализираме менюто за въвеждане на GRUB2, като по този начин добавяме липсващи входове. По-късно преинсталираме GRUB на нашия диск, тъй като той е повреден.

В този случай съм взел / Dev / SDA подобно на диска, където имаме нашата система, това трябва да се адаптира към вашия случай.

Нашият GRUB вече трябва да бъде поправен, така че трябва да излезем chroot, демонтирайте файловата система (ВАЖНО) и рестартирайте, за да влязат в сила промените. Ако забравим да демонтираме файловата система, възможно е рестартирането на файловете да не се демонтира правилно и следователно някои промени няма да влязат в сила.
# оставихме chrootexit
# демонтирайте файловата система и рестартирайтеumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

И това е всичко. Надявам се да ви хареса и да ви помогне. Поздрав!


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Leper_Ivan каза той

    Бих могъл да използвам това .. В един момент трябва да го използвам.

  2.   Марио каза той

    Някой от вас използвал ли е Chakra Benz? Ако е така, бихте ли ми казали дали
    лесно ли е за обикновения потребител? Използвам SolydK, което е много просто, но
    Разбирам, че чакрата е чисто KDE и ме интересува.

    1.    Еха каза той

      Да, чакрата е добре и повече или по-малко лесно, работата е в това, че за да инсталирате / деинсталирате пакети, трябва да го направите с конзолата, тъй като те все още работят върху графичен мениджър на пакети. Опитайте, защото си заслужава. Той използва мениджъра на пакети pacman, наследен от Archlinux, но внимавайте, той не споделя хранилища с arch и НЕ е съвместим с тях. Ако искате да научите повече за pacman, погледнете уикито на arch https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    иззивп каза той

        Oktopi вече е стабилен и работи доста добре за средностатистически потребител, като не ви е необходим терминалът, за да използвате pacman.

  3.   x11tete11x каза той

    Надявам се, че тази публикация ще бъде посетена от мнозина, след това те започват да преинсталират главите си за каквото и да било, когато с chroot можете да ремонтирате системата почти винаги, chroot ви дава много възможности, сред които инсталиране на Gentoo xD hahaha

  4.   алунадо каза той

    хубаво, благодаря ... Никога не съм му давал топка, защото някакъв live-cd за ремонт ми се струва, че го вдигат по подразбиране, но сега е ясно, благодаря отново.

  5.   Лоло каза той

    За да го завършите, би било добре да обясните как да монтирате LVM дялове, криптирани дялове и RAID системи.

    1.    Еха каза той

      mmm Отдавна не съм пипал LVM и RAID, но бихте ли ме информирали малко, за да завърша това ... благодаря за съвета!

      1.    Лоло каза той

        Ами истината е, че бих могъл да използвам страхотно.

        Би било много оценено.

        1.    Еха каза той

          погледнете тази уики, доста е готина http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Модем каза той

    Ако само тази тема беше съществувала няколко седмици по-късно, се оказва, че имам проблем със системата си и чета и чета и навсякъде намерих chroot и blablabla, но не ми се получи въз основа на препоръката на живо, която е същата като вашата система , много важно, защото използвам x64, другото е да монтирам системните дялове, защото в моя случай, когато прилагах chroot и го монтирах, хвърляше команда и тя просто не разпознаваше командата.

    Тази тема ще отиде в моите файлове "компилация на информация"

  7.   курабийка каза той

    Arch LiveCD (с този инструмент) е всичко, което е необходимо, за да поправите вашата система, когато я счупите.

    1.    RAW-основен каза той

      Точно! .. .. това е всичко, което е необходимо .. дори да се помогне на някой със своите W $, който реши да не започва ..

      Винаги имам със себе си 1gb pendrive с Arch на живо ... и chroot е всичко, от което се нуждая, така че при всеки проблем, след 10 минути да имате всичко в ред, без да се тревожите .. ..

    2.    иззивп каза той

      Просто трябва да знаете как да го направите.

    3.    Пабло каза той

      Здравейте, забележете, че имам проблем с centos, той ми изпраща паника в ядрото и т.н. И не успях да го реша, имам уебсайт и база данни там.Не знам какво друго да направя.

  8.   jony127 каза той

    Добър пост, бях чул малко chroot мимоходом, но всъщност не знаех как е използван, разбира се, никога не съм имал нужда от него и затова не бях чел нещо по-специално. Сега с вашия пост обяснен много ясно, знам как да го използвам в случай.

    Благодаря ви много и между другото, да живее Led Zeppelin hehe.

  9.   камала каза той

    благодаря, най-накрая излязох от кошмара за спасяване

    всъщност изпълних всички стъпки с изключение на umount / mnt / my_linux, защото ми каза, че е зает и аз fuser -km, но дори не това, и отскачам ...

    Надявам се, че не е важно….

    Благодаря отново…
    поздрав

  10.   Хосе Антонио каза той

    Въпреки че статията е вече на няколко години, искам да благодаря на автора за неговата щедрост при споделянето й. Страхотна статия, защото този уикенд ми спаси живота. Неволно заредих сървър, който инсталира пакет и при рестартиране не се зареди. След три дни опит за поправяне и четене на различни статии, успях да попадна тук случайно и най-накрая успях да преинсталирам grub и да поправя сървъра.

    Благодаря ви много!

    1.    Еха каза той

      Радвам се, че ти помогна. Благодаря за коментара!

  11.   Helio каза той

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

    1.    Еха каза той

      Наистина не разбирам проблема ви ... Когато влезете с LiveCD, ядрото, което се зарежда, е това от LiveCD, следователно трябва да можете да конфигурирате перфектно интернет връзка. След като връзката е осъществена, опитайте да chroot, за да видите дали все още я запазвате, ако не, може да се наложи да я конфигурирате отново, но повреденото ядро ​​не трябва да влияе на chroot сесията.
      Ако не посочите повече, мога да ви кажа ...

  12.   дача каза той

    Отличен пост ... една от малкото полезни статии, намерени в Интернет.
    Благодаря ви много за приноса.

  13.   zopeck каза той

    Здравейте, отличен урок! Превъзходно обяснено, за нас, простосмъртните!

    Имам въпрос:
    Когато споменахте, че в случай на необходимост от инсталиране на пакети, извършване на системни актуализации или друга специална дейност и изискване за монтиране на папките / dev / proc и / sys, не ми стана ясно дали тези папки са в системата Live, с която стартира оборудването, което ще се ремонтира, или ако те са първо в монтирания корен дял.

    Благодаря ви.

  14.   Орландо каза той

    БЛАГОДАРЯ МНОГО!!!!