การซ่อมแซมระบบ: HowTo chroot

หลายครั้งโดยเฉพาะอย่างยิ่งเมื่อเกิดความยุ่งเหยิงเราพบว่าตัวเองมีปัญหาในการไม่สามารถเข้าถึงระบบเพื่อซ่อมแซมได้ แต่วิธีแก้ปัญหานั้นง่ายมาก: ใช้คำสั่ง โครต จาก LiveCD / RepairCD ใด ๆ

ในหลาย ๆ ที่ (ฟอรัมบล็อก ... ) มีการกล่าวถึงคำสั่งนี้และมีการ "คัดลอก / วาง" ของโค้ด แต่ความตั้งใจของฉันในโพสต์นี้คืออธิบายขั้นตอนเหล่านั้นเล็กน้อยเพื่อให้สามารถใช้ประโยชน์ได้ดี เครื่องมือที่มีความรู้เกี่ยวกับสาเหตุ

การแนะนำ

คำสั่ง โครต เป็นที่รู้จักกันในชื่อ CHangeROOT นั่นคือคำสั่งที่ให้คุณเปลี่ยนรูทของระบบที่คุณกำลังทำงานอยู่ กล่าวอีกนัยหนึ่ง: หากคุณมาจาก LiveCD และต้องการให้ทุกสิ่งที่คุณกำลังทำงานบนคอนโซลมีผลต่อระบบที่ติดตั้งก่อนอื่นคุณต้องใช้ประโยชน์จาก โครต.

ปัญหาคือไม่เพียงพอต่อการใช้งาน โครต ดังนั้นก่อนที่เราจะต้องติดตั้งพาร์ติชันบางอย่าง

ทำอย่างไร

ก่อนอื่นเราต้องเริ่มต้นเทอร์มินัลไม่ว่าจะจากระบบอื่นที่ติดตั้ง (บนพาร์ติชัน / ดิสก์อื่น) หรือจาก LiveCD สิ่งสำคัญ: สถาปัตยกรรมของ LiveCD ต้องตรงกับระบบที่จะซ่อมแซม (32 หรือ 64 บิต)
เมื่อเราอยู่ในเทอร์มินัลเราจะเริ่มต้นด้วยการระบุพาร์ติชันของเรา:
fdisk -l

  • ด้วยคำสั่งนี้เราจะแสดงรายการพาร์ติชัน / ดิสก์ทั้งหมดของเรา เราต้องระบุว่าเป็นพาร์ติชันเป้าหมายที่ติดตั้งระบบของเราเพื่อซ่อมแซมจากนี้ไปเราจะเรียกมันว่า ระบบเสีย.

สำหรับตัวอย่างนี้เราจะพิจารณาว่าระบบเสียของเราอยู่ใน / dev / sda1 .

เราไปประกอบระบบ ขั้นแรกเราจะสร้างโฟลเดอร์ที่เราจะทำงานและต่อมาเราติดตั้งพาร์ติชันที่ระบบเสียของเราอยู่ในโฟลเดอร์นั้น
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

หากคุณมีโฟลเดอร์ / หน้าแรก o / var หรืออื่น ๆ บนพาร์ติชันอื่นคุณควรติดตั้งดังต่อไปนี้:
mount /dev/sda2 /mnt/my_linux/var

  • หมายเหตุ: ฉันได้ใช้พาร์ติชัน / dev / sda2 สำหรับโฟลเดอร์ / var เป็นตัวอย่างให้แต่ละคนปรับรหัสตามลักษณะของมัน

โดยปกติสิ่งนี้จะเพียงพอหากคุณต้องการแก้ไขไฟล์ด้วยมือ แต่ถ้าเราต้องการเรียกใช้คำสั่งบางอย่างที่กำหนดค่าระบบเราจำเป็นต้องติดตั้งโฟลเดอร์ระบบพิเศษบางโฟลเดอร์: / dev, / proc/ 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 เราบอก ภูเขา ประเภทของ "ระบบไฟล์" ที่เราต้องการติดตั้ง จำเป็นต้องระบุเนื่องจากลักษณะพิเศษของโฟลเดอร์ / proc y / sys.
  • พร้อมตัวเลือก -o เราระบุตัวเลือกของ ภูเขา. ทางเลือก ผูก มันทำหน้าที่ "เชื่อมโยง" ใน UNIX อุปกรณ์ฮาร์ดแวร์ทั้งหมดสามารถเข้าถึงได้ผ่านโฟลเดอร์ / devนั่นคือเหตุผลที่เราต้องยึดกระแสของเรา / dev ในโฟลเดอร์ที่ระบบเสียของเราอยู่ในขณะนี้ เนื่องจากโฟลเดอร์นี้ติดตั้งแล้วจึงจำเป็นต้องบอกเท่านั้น ภูเขา ที่เดิมติดตั้ง

ก็ทำแบบนี้แหละ โครต เข้าถึงโฟลเดอร์เหล่านี้ได้ราวกับว่าเป็นระบบที่เสียแม้ว่าจะต้องมาจากระบบปัจจุบัน (เช่นเซสชัน LiveCD) เนื่องจากเกี่ยวข้องกับสถานะของระบบกระบวนการและฮาร์ดแวร์

ตอนนี้เป็นเวลาที่จะใช้ โครต:
chroot /mnt/my_linux/ /bin/bash

  • คำสั่งจะถูกส่งผ่านเป็นอาร์กิวเมนต์เส้นทางของรูทใหม่« / » (ซึ่งในกรณีของเราคือ / mnt / my_linux) และคอนโซลที่คุณต้องการใช้ (ในกรณีนี้เราได้เลือกใช้ bash ที่รู้จักกันดีซึ่งพบได้ใน / bin / bash). หากเราไม่ระบุคอนโซลเราจะพบว่าตัวเองอยู่ก่อนตัวแปลคำสั่งที่ค่อนข้างเก่า (ไม่เติมเมื่อกดแท็บ ฯลฯ )

ตอนนี้เราสามารถใช้คอนโซลราวกับว่าเราเริ่มต้นเซสชันรูทบนระบบที่เสียของเรา (แก้ไขไฟล์ตรวจสอบสคริปต์ติดตั้ง / ถอนการติดตั้งแพ็คเกจ ... ) คำเตือน! เพื่อให้การเปลี่ยนแปลงมีผลคุณต้องยกเลิกการต่อเชื่อมระบบไฟล์หลังจากออกจากระบบ โครตดูตัวอย่างด้านล่าง

ข้อมูลเพิ่มเติมได้ที่ https://wiki.archlinux.org/index.php/Change_Root (มากกว่าการอ่านที่แนะนำ)

ตัวอย่างการใช้งาน: เรียกคืน GRUB2

หนึ่งในการใช้งานที่แพร่หลายที่สุดของ โครต เป็นเครื่องมือในการซ่อมแซมด้วง เนื่องจากหากด้วงแตกจึงเป็นไปไม่ได้ที่จะบูตระบบของเราเพื่อแก้ไขปัญหานี้

ข้อสังเกต: บทช่วยสอนเล็ก ๆ น้อย ๆ นี้เป็นเพียงตัวอย่างเท่านั้นซึ่งใช้งานได้กับการกระจายต่างๆที่ได้มาจาก Debian, Ubuntu และ openSUSE เป็นต้น อย่างไรก็ตามให้ตรวจสอบเอกสารการแจกจ่ายของคุณเนื่องจากไม่พบคำสั่งในหลายคำสั่ง ปรับปรุงด้วง
# หมายเหตุ: คำสั่งเหล่านี้ทำงานหนึ่งครั้งภายใน chrootupdate-grub
grub-install /dev/sda

  • กับ ปรับปรุงด้วง เราอัปเดตเมนูป้อนข้อมูลของ GRUB2 จึงเพิ่มอินพุตที่ขาดหายไป ต่อมาเราติดตั้ง GRUB บนดิสก์ของเราใหม่เนื่องจากได้รับความเสียหาย

ในกรณีนี้ฉันได้ดำเนินการ / dev / SDA เช่นเดียวกับอัลบั้มที่เรามีระบบของเราสิ่งนี้จะต้องปรับให้เข้ากับกรณีของคุณ

GRUB ของเราควรได้รับการซ่อมแซมแล้วดังนั้นเราจึงต้องออก โครตยกเลิกการต่อเชื่อมระบบไฟล์ (สำคัญ) และรีบูตเพื่อให้การเปลี่ยนแปลงมีผล หากเราลืมยกเลิกการต่อเชื่อมระบบไฟล์อาจเป็นไปได้ว่าการรีบูตไฟล์จะไม่สามารถยกเลิกการต่อเชื่อมได้อย่างถูกต้องดังนั้นการเปลี่ยนแปลงบางอย่างจะไม่มีผล
# เราออกจาก chrootexit
# ยกเลิกการต่อเชื่อมระบบไฟล์และรีบูตumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

และนั่นคือทั้งหมด ฉันหวังว่าคุณจะสนุกกับมันและมันจะช่วยคุณได้ คำอวยพร!


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   Leper_Ivan dijo

    ก็ใช้ได้นะ .. ถึงจุดหนึ่งก็ต้องใช้

  2.   มาริโอ dijo

    คุณเคยใช้ Chakra Benz หรือไม่? ถ้าเป็นเช่นนั้นคุณช่วยบอกฉันได้ไหมว่า
    ง่ายสำหรับผู้ใช้ทั่วไปหรือไม่? ฉันใช้ SolydK ซึ่งง่ายมาก แต่
    ฉันเข้าใจว่า Chakra เป็น KDE ที่บริสุทธิ์และทำให้ฉันสนใจ

    1.    ว้าว dijo

      ใช่จักระนั้นดีมากและง่ายไม่มากก็น้อยก็คือการติดตั้ง / ถอนการติดตั้งแพ็คเกจที่คุณต้องทำกับคอนโซลเนื่องจากพวกเขายังคงทำงานกับโปรแกรมจัดการแพ็คเกจกราฟิก ลองดูเพราะคุ้มมาก มันใช้ตัวจัดการแพคเกจ pacman ซึ่งสืบทอดมาจาก Archlinux แต่ระวังมันจะไม่แชร์ที่เก็บกับ arch และมันเข้ากันไม่ได้กับมัน หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ pacman โปรดดูที่ arch wiki https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    อิซซิฟ dijo

        Oktopi มีความเสถียรอยู่แล้วและใช้งานได้ดีสำหรับผู้ใช้ทั่วไปโดยที่คุณไม่จำเป็นต้องใช้เทอร์มินัลเพื่อใช้ Pacman

  3.   x11tete11x dijo

    ฉันหวังว่าโพสต์นี้จะมีผู้เยี่ยมชมหลายคนจากนั้นพวกเขาก็เริ่มต้นการติดตั้งใหม่สำหรับทุกสิ่งเมื่อด้วย chroot คุณสามารถซ่อมแซมระบบได้เกือบตลอดเวลา chroot ช่วยให้คุณมีโอกาสมากมายรวมถึงการติดตั้ง Gentoo xD ด้วยฮ่า ๆ

  4.   อลูนาโด dijo

    ดีมากขอบคุณ ... ฉันไม่เคยให้ลูกบอลเพราะซีดีสดสำหรับการซ่อมแซมสำหรับฉันดูเหมือนว่าพวกเขาจะยกมันขึ้นโดยปริยาย แต่ตอนนี้มันชัดเจนแล้วขอบคุณอีกครั้ง

  5.   โลโล dijo

    เพื่อให้เสร็จสมบูรณ์มันจะเป็นการดีที่จะอธิบายวิธีการเมานต์พาร์ติชัน LVM พาร์ติชันที่เข้ารหัสและระบบ RAID

    1.    ว้าว dijo

      mmm ฉันไม่ได้สัมผัส LVM และ RAID มานานแล้ว แต่คุณช่วยแจ้งให้ฉันทราบหน่อยเพื่อทำสิ่งนี้ให้เสร็จ ... ขอบคุณสำหรับเคล็ดลับ!

      1.    โลโล dijo

        ความจริงก็คือฉันสามารถใช้งานได้ดี

        จะได้รับการชื่นชมมาก

        1.    ว้าว dijo

          ลองดูวิกินี้มันเจ๋งมาก http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   โมเด็ม dijo

    หากมีเพียงหัวข้อนี้ในสองสามสัปดาห์ต่อมาปรากฎว่าฉันมีปัญหากับระบบของฉันและฉันอ่านและอ่านและทุกที่ที่ฉันพบ chroot และ blablabla แต่มันไม่ได้ผลสำหรับฉันตามคำแนะนำของไลฟ์ที่เป็น เช่นเดียวกับระบบของคุณสำคัญมากเพราะฉันใช้ x64 อีกอันคือการเมานต์พาร์ติชันระบบเพราะในกรณีของฉันเมื่อฉันใช้ chroot และการติดตั้งฉันกำลังโยนคำสั่งและมันก็ไม่รู้จักคำสั่ง

    หัวข้อนี้จะไปที่ไฟล์ "การรวบรวมข้อมูล" ของฉัน

  7.   คุกกี้ dijo

    Arch LiveCD (ด้วยเครื่องมือนี้) คือสิ่งที่จำเป็นในการแก้ไขระบบของคุณเมื่อคุณทำลายมัน

    1.    RAW-พื้นฐาน dijo

      เป๊ะ! .. .. มันคือทั้งหมดที่จำเป็น .. แม้จะช่วยใครสักคนด้วย W $ ของพวกเขาที่ตัดสินใจไม่เริ่ม ..

      ฉันมักจะมีเพนไดรฟ์ 1gb กับ Arch live อยู่เสมอ ... และ chroot เป็นสิ่งที่จำเป็นดังนั้นใน 10 นาทีคุณจะมีทุกอย่างตามลำดับโดยไม่ต้องตื่นตระหนก .. 😉

    2.    อิซซิฟ dijo

      คุณเพียงแค่ต้องรู้วิธีการทำ

    3.    ปาโบล dijo

      สวัสดีสังเกตว่าฉันมีปัญหากับ centos มันส่งเคอร์เนลตกใจเป็นต้น และฉันไม่สามารถแก้ไขได้ฉันมีเว็บไซต์และฐานข้อมูลอยู่ที่นั่นฉันไม่รู้จะทำอะไรอีก

  8.   jony127 dijo

    โพสต์ที่ดีฉันเคยได้ยินบางเรื่องที่ผ่านมา แต่ฉันไม่รู้จริงๆว่ามันใช้อย่างไรแน่นอนว่าฉันไม่เคยต้องการมันและนั่นคือเหตุผลที่ฉันไม่ได้อ่านบางอย่างเป็นพิเศษ ตอนนี้โพสต์ของคุณอธิบายไว้อย่างชัดเจนแล้วฉันรู้วิธีใช้ในกรณีนี้

    ขอบคุณมากและโดยทาง Led Zeppelin ที่มีอายุยืนยาวฮิฮิ

  9.   กมลา dijo

    ขอบคุณในที่สุดฉันก็หลุดพ้นจากฝันร้ายของการช่วยเหลือด้วง

    อันที่จริงฉันทำตามขั้นตอนทั้งหมดยกเว้น umount / mnt / my_linux เพราะมันบอกฉันว่ามันไม่ว่างและฉันฟิวเซอร์มัน -km แต่ไม่ถึงขนาดนั้นและเด้ง ...

    หวังว่าคงไม่สำคัญ….

    ขอบคุณอีกครั้ง…
    อวยพร

  10.   โฆเซอันโตนิโอ dijo

    แม้ว่าบทความนี้จะมีอายุได้สองสามปีแล้ว แต่ฉันก็อยากจะขอบคุณผู้เขียนสำหรับความเอื้อเฟื้อในการแบ่งปันบทความนี้เป็นบทความที่ยอดเยี่ยมเพราะสุดสัปดาห์นี้ได้ช่วยชีวิตฉัน โดยไม่สมัครใจฉันโหลดเซิร์ฟเวอร์ที่ติดตั้งแพ็กเกจและเมื่อรีสตาร์ทเซิร์ฟเวอร์ไม่โหลด หลังจากพยายามแก้ไขและอ่านบทความต่างๆมาสามวันฉันก็มาถึงที่นี่ได้โดยบังเอิญและในที่สุดก็สามารถติดตั้งด้วงและแก้ไขเซิร์ฟเวอร์ได้

    ขอบคุณมาก !!!

    1.    ว้าว dijo

      ฉันดีใจที่ช่วยคุณได้ ขอบคุณสำหรับความคิดเห็น!

  11.   ฮีเลียม dijo

    สวัสดีฉันรู้ว่าโพสต์นี้เมื่อหลายปีก่อนขอบคุณมากสำหรับการแบ่งปัน และฉันมีข้อสงสัยในกรณีของฉันมันทำให้ระบบเสียหายและไดรเวอร์เครือข่ายดังนั้นฉันจึงทำตามขั้นตอน แต่ไม่อนุญาตให้ฉันดาวน์โหลดแพ็คเกจมีวิธีใดในการเชื่อมโยงเครือข่ายสดกับเทอร์มินัล

    1.    ว้าว dijo

      ฉันไม่เข้าใจปัญหาของคุณจริงๆ…เมื่อคุณเข้าสู่ระบบด้วย LiveCD เคอร์เนลที่โหลดเป็นเคอร์เนลจาก LiveCD ดังนั้นคุณควรกำหนดค่าการเชื่อมต่ออินเทอร์เน็ตได้อย่างสมบูรณ์แบบ เมื่อทำการเชื่อมต่อแล้วให้ลองทำ chroot เพื่อดูว่าคุณยังคงรักษาไว้หรือไม่ถ้าไม่คุณอาจต้องกำหนดค่าอีกครั้ง แต่เคอร์เนลที่เสียหายไม่ควรส่งผลต่อเซสชัน chroot
      ถ้าไม่ระบุเพิ่มเติมบอกได้เลยครับ ...

  12.   เดชา dijo

    โพสต์ที่ยอดเยี่ยม ... หนึ่งในบทความที่มีประโยชน์ไม่กี่บทความที่พบบนอินเทอร์เน็ต
    ขอบคุณมากสำหรับการสนับสนุน

  13.   โซเปค dijo

    สวัสดีกวดวิชาที่ยอดเยี่ยม! อธิบายได้ดีมาก สำหรับเราปุถุชน!

    ผมมีคำถาม:
    เมื่อคุณกล่าวว่าในกรณีที่จำเป็นต้องติดตั้งแพ็คเกจ ดำเนินการอัปเดตระบบหรือกิจกรรมพิเศษอื่น ๆ และจำเป็นต้องติดตั้งโฟลเดอร์ / dev / proc และ / sys ฉันไม่ชัดเจนหากโฟลเดอร์เหล่านี้อยู่ในระบบ Live ที่เรา เริ่มต้นอุปกรณ์ที่จะซ่อมแซมหรือหากอยู่ในพาร์ติชั่นรูทที่ติดตั้งก่อน

    ขอขอบคุณ

  14.   ออร์แลนโด dijo

    ขอบคุณมาก!!!!