- การเข้าใจเกี่ยวกับไดเร็กทอรีที่สำคัญ, GRUB, UEFI และ systemd เป็นกุญแจสำคัญในการกู้คืนระบบ Linux ที่เสียหาย
- การสำรองข้อมูลแบบเต็มรูปแบบและการสร้างสแนปช็อตด้วยเครื่องมืออย่าง TimeShift ช่วยให้การกู้คืนข้อมูลทำได้ง่ายขึ้นมาก
- โหมดกู้คืนและโหมดฉุกเฉินช่วยให้คุณแก้ไขปัญหาการบูตเครื่องได้โดยไม่ต้องติดตั้งระบบใหม่
- การกู้คืนข้อมูลขึ้นอยู่กับระบบไฟล์ โดย ext2/3/4 เป็นระบบไฟล์ที่พบได้บ่อยที่สุดในลินุกซ์
เมื่อระบบ Linux บูตไม่ขึ้นหรือค้างหลังจากอัปเดต การตกใจเป็นเรื่องปกติ อย่างไรก็ตาม ด้วยระบบต่อไปนี้ เครื่องมือการกู้คืนที่เหมาะสมและกลยุทธ์การสำรองข้อมูลที่ดีเป็นไปได้โดยสิ้นเชิงที่จะทำให้เครื่องกลับมาใช้งานได้อีกครั้งโดยไม่ต้องติดตั้งระบบใหม่ทั้งหมด
ในโลกของ Windows มีวิธีการแก้ไขปัญหาที่ใช้กันทั่วไปมากมาย เช่น โหมดปลอดภัย การกู้คืนระบบ เครื่องมือซ่อมแซม และหากเป็นทางเลือกสุดท้ายคือการติดตั้งระบบใหม่ ส่วน Linux ก็มีเครื่องมือที่มีประสิทธิภาพมากมายเช่นกัน วิธีการกู้คืนระบบ ซ่อมแซมกระบวนการบูต การใช้โหมดฉุกเฉิน และการกู้คืนข้อมูลสิ่งสำคัญคือต้องรู้ข้อมูลเหล่านั้นล่วงหน้า เพื่อที่คุณจะได้ไม่ต้องแก้ไขสถานการณ์เฉพาะหน้าเมื่อเกิดภัยพิบัติขึ้น
แนวคิดพื้นฐานเกี่ยวกับการกู้คืนระบบใน Linux
ก่อนที่เราจะไปดูคำสั่งต่างๆ เราควรทำความเข้าใจให้ชัดเจนก่อนว่า "เรากำลังพูดถึงอะไร" การกู้คืนระบบ Linuxเราไม่ได้พูดถึงเรื่องเดียวกันเสมอไป บางครั้งอาจเป็นการซ่อมแซม GRUB บางครั้งก็เป็นการกู้คืนข้อมูลสำรองทั้งหมด และในบางกรณีอาจเป็นการกู้คืนข้อมูลจากดิสก์ที่เสียหาย
โดยทั่วไป เราสามารถแบ่งสถานการณ์ออกเป็นสามกลุ่มหลัก ได้แก่ การกู้คืนระบบให้กลับสู่สถานะเดิมโดยใช้การสำรองข้อมูลแบบเต็มรูปแบบ แก้ไขปัญหาการบูตหรือเคอร์เนลจาก GRUB หรือ UEFIและสุดท้าย การกู้คืนข้อมูลเมื่อระบบไฟล์เสียหาย
สิ่งสำคัญอีกประการหนึ่งคือการแยกแยะความแตกต่างระหว่างเครื่องมือที่ทำหน้าที่ต่างๆ ภายในระบบนั้นเอง (เมื่อเครื่องยังคงบูตได้ในบางโหมด) และโหมดอื่นๆ ที่เราใช้จากสภาพแวดล้อมภายนอก เช่น Live CD/USB หรือ UEFI shell ยิ่งเครื่องมีสภาพแย่ลงเท่าไหร่ เราก็ยิ่งต้องพึ่งพาสภาพแวดล้อมภายนอกเหล่านี้มากขึ้นเท่านั้น
ด้วยเหตุนี้จึงควรอย่างยิ่งที่จะมีไว้เสมอ บูทขนาดกลาง ของระบบปฏิบัติการที่คล้ายกับที่เราใช้ (ตัวอย่างเช่น Debian, Ubuntu, Linux Mint เวอร์ชัน Live เป็นต้น) เพราะจะทำให้ทุกอย่างง่ายขึ้นมาก ฟอร์แมต ติดตั้งพาร์ติชั่น กู้คืนไฟล์ และติดตั้งบูตโหลดเดอร์ใหม่.
กู้คืนระบบ Linux ทั้งหมดจากไฟล์สำรองข้อมูล
หนึ่งในวิธีการที่เชื่อถือได้มากที่สุดในการกู้คืนระบบจาก "หายนะ" คือการสร้างสำเนาสำรองของระบบไว้ล่วงหน้าอย่างครบถ้วน ด้วยสำเนาสำรองนั้น เราสามารถ กู้คืนระบบให้กลับสู่สถานะก่อนหน้า พร้อมด้วยโปรแกรม การตั้งค่า และการปรับแต่งต่างๆโดยไม่ต้องติดตั้งใหม่ตั้งแต่เริ่มต้น
กระบวนการกู้คืนระบบจากไฟล์สำรองข้อมูล (เช่น ไฟล์เก็บถาวรระบบ tar.bz2) สามารถสรุปได้เป็นขั้นตอนง่ายๆ ไม่กี่ขั้นตอน ได้แก่ เตรียมพาร์ติชัน ติดตั้งพาร์ติชัน แยกไฟล์สำรองข้อมูล สร้างไดเร็กทอรีที่ถูกยกเว้นบางส่วนขึ้นใหม่ และ... ทำการบูตใหม่ด้วย GRUB.
ตามหลักการแล้ว คุณควรบูตจาก Live CD/USB ของระบบปฏิบัติการที่คล้ายคลึงกับระบบเดิม (หากระบบของคุณคือ Debian ให้ใช้ Debian Live, Linux Mint, Xubuntu เป็นต้น) ระบบปฏิบัติการขนาดเล็กเหล่านี้เหมาะสำหรับการทดลองโดยไม่ทำให้ระบบทำงานช้า และช่วยให้คุณทำงานกับเครื่องมือเกี่ยวกับดิสก์ได้อย่างสะดวกสบาย
จัดรูปแบบและเตรียมพาร์ติชั่นปลายทาง
เมื่อระบบบูตจากสภาพแวดล้อม Live แล้ว ขั้นตอนแรกคือการล้างพาร์ติชั่นที่เราจะใช้ในการกู้คืนระบบ GParted เป็นเครื่องมือที่มีประโยชน์มากสำหรับขั้นตอนนี้ มันเป็นเครื่องมือแบบกราฟิกที่มักจะมีให้ใช้งานหรือสามารถติดตั้งได้ด้วยคำสั่งง่ายๆ sudo apt ติดตั้ง gparted บนระบบปฏิบัติการ Debian, Ubuntu หรือ Linux Mint หากเรามีการเชื่อมต่ออินเทอร์เน็ต
จาก GParted เราสามารถลบพาร์ติชั่นเก่า สร้างพาร์ติชั่นใหม่ และฟอร์แมตด้วยระบบไฟล์ที่เหมาะสมได้ โดยปกติแล้วจะใช้โปรแกรมอื่น ext4 สำหรับพาร์ติชั่นรูทแนวคิดคือ สถานที่ที่จะทำการบูรณะจะต้องสะอาดหมดจดและปราศจากร่องรอยของสิ่งติดตั้งเก่าๆ
เมื่อทำการฟอร์แมตเสร็จแล้ว ควรจดบันทึกรหัสระบุพาร์ติชันไว้ด้วย (ตัวอย่างเช่น) /dev/sda1, /dev/sdb2เป็นต้น) เนื่องจากเราจะต้องใช้มันสำหรับการประกอบ และในภายหลังเพื่อติดตั้ง GRUB ลงในดิสก์ที่ถูกต้อง
หากเราไม่ต้องการใช้ GParted เราสามารถใช้เครื่องมือแบบคอนโซล เช่น fdisk, parted หรือ mkfs.ext4 ได้ แต่สำหรับผู้ใช้หลายคน อินเทอร์เฟซแบบกราฟิกทำให้สะดวกกว่า งานแบ่งพาร์ติชั่นและจัดรูปแบบที่ละเอียดอ่อน.
ติดตั้งพาร์ติชั่นที่เราจะใช้ในการกู้คืนระบบ
เมื่อฟอร์แมตพาร์ติชั่นเสร็จแล้ว ขั้นตอนต่อไปคือการเมานต์พาร์ติชั่นนั้นในไดเร็กทอรีบนระบบ Live เพื่อให้คุณสามารถเข้าถึงได้ วิธีที่ง่ายที่สุดคือการเมานต์โดยตรงไปยังไดเร็กทอรี Live / mntอย่างไรก็ตาม เราสามารถสร้างไดเร็กทอรีย่อยเฉพาะขึ้นมาได้หากต้องการจัดระเบียบให้เป็นระเบียบยิ่งขึ้น
ตัวอย่างเช่น เราอาจทำแบบนี้ก็ได้:
sudo mkdir /mnt/sistema
ขั้นตอนต่อไป เราจะตรวจสอบชื่อพาร์ติชันปลายทางด้วยคำสั่ง:
sudo fdisk -l
สุดท้ายนี้ เราจะทำการเมานต์ (โดยสมมติว่าเป็น /dev/sda1):
sudo เมานต์ /dev/sda1 /mnt
นับจากนี้เป็นต้นไป ทุกสิ่งที่เราคัดลอก สร้าง หรือลบภายใน / mnt จริงๆ แล้วมันจะถูกนำไปใช้กับพาร์ติชั่นดิสก์นั้น ซึ่งจะเป็นรูทของระบบในอนาคตเมื่อเราทำการกู้คืนเสร็จสิ้น
แตกไฟล์สำรองไปยังพาร์ติชั่นใหม่
โดยปกติแล้ว ข้อมูลสำรองทั้งหมดจะถูกจัดเก็บไว้ในสื่อภายนอก เช่น แฟลชไดรฟ์ USB, ฮาร์ดไดรฟ์ USB, NAS เป็นต้น สมมติว่าเรามีสำเนาที่บีบอัดแล้วอยู่ในแฟลชไดรฟ์ USB ชื่อ USB32GB ภายในไดเร็กทอรี System_backup_06oct14 พร้อมไฟล์ System_backup_06oct14.tar.bz2.
ในสถานการณ์นั้น การเรียกใช้คำสั่งที่คล้ายกับต่อไปนี้ก็เพียงพอแล้ว:
sudo tar -xvpjf /media/USB32GB/System_backup_06oct14/System_backup_06oct14.tar.bz2 -C /mnt
ด้วยคำสั่งนั้น เรากำลังบอกให้ tar แตกไฟล์ โดยรักษาการอนุญาต เจ้าของ และโครงสร้างไดเร็กทอรีไว้ ทำให้เนื้อหาคงเดิมทุกประการเหมือนตอนที่เราคัดลอก แต่ตอนนี้ไฟล์นั้นอยู่ในพาร์ติชันที่เราเมานต์ไว้แล้ว / mnt.
ขึ้นอยู่กับขนาดของไฟล์สำรองข้อมูลและความเร็วของฮาร์ดแวร์ กระบวนการนี้อาจใช้เวลานานพอสมควร เป็นเรื่องปกติที่จะต้องอดทนรอ รอจนกว่าการกู้คืนไฟล์ทั้งหมดจะเสร็จสมบูรณ์ ก่อนที่จะดำเนินการขั้นตอนที่เหลือต่อไป
สร้างไดเร็กทอรีระบบที่ถูกยกเว้นไว้
เมื่อสร้างการสำรองข้อมูลระบบแบบเต็มรูปแบบ เป็นเรื่องปกติที่จะยกเว้นไดเร็กทอรีที่เปลี่ยนแปลงได้ง่ายหรือไดเร็กทอรีที่ไม่จำเป็นต้องสำรองข้อมูล เช่น /proc, /tmp, /mnt, /media หรือไฟล์บันทึกบางส่วน ซึ่งหมายความว่า เมื่อคลายไฟล์สำรองข้อมูลแล้ว ควรดำเนินการดังต่อไปนี้ สร้างไดเร็กทอรีว่างเหล่านั้นขึ้นมาใหม่ด้วยตนเอง.
ตัวอย่างคำสั่งทั่วไปในการสร้างสิ่งเหล่านี้อาจเป็นดังนี้:
sudo mkdir /mnt/proc /mnt/mnt /mnt/media /mnt/tmp /mnt/var/log
ผู้ใช้แต่ละคนควรปรับรายการนี้ให้ตรงกับสิ่งที่ตนเองไม่ได้ใส่ไว้ในสำเนาต้นฉบับ สิ่งสำคัญคือรายการเหล่านี้ต้องมีอยู่เมื่อระบบเริ่มทำงาน เส้นทางวิกฤตทั้งหมดที่ระบบปฏิบัติการต้องการ เพื่อให้ทำงานได้อย่างถูกต้อง
เข้าสู่โหมด chroot เพื่อทำงานเสมือนว่าเราอยู่ภายในระบบ
ข้อดีอย่างหนึ่งของ Linux คือความสามารถในการใช้ chroot เพื่อ "จำกัด" สภาพแวดล้อมและทำให้ระบบพิจารณาถึงสิ่งต่างๆ อย่างรอบคอบ ไดเร็กทอรีหนึ่งเป็นรูทใหม่ในกรณีนี้ เราต้องการให้ /mnt กลายเป็น / จากมุมมองของคำสั่งที่เราเรียกใช้
ก่อนเข้าสู่โหมด chroot คุณต้องทำการเมานต์ระบบไฟล์เสมือนบางส่วนจากระบบ Live เข้าไปใน /mnt เพื่อให้ระบบที่อยู่ในโหมด chroot สามารถเข้าถึง /proc, /sys, /dev และอุปกรณ์อื่นๆ ที่จำเป็นได้:
sudo mount -t proc proc /mnt/proc/
sudo mount -t sysfs sys /mnt/sys/
sudo mount -o bind /dev /mnt/dev/
sudo mount -t devpts pts /mnt/dev/pts
เมื่อทุกอย่างพร้อมแล้ว เราก็สามารถเข้าไปในสภาพแวดล้อมที่จำกัดได้:
sudo chroot /mnt /bin/bash
นับจากนั้นเป็นต้นไป ทุกสิ่งทุกอย่างในเทอร์มินัลนั้นจะทำงานได้ราวกับว่าเราอยู่ภายในระบบที่ได้รับการกู้คืนแล้ว เส้นทางต่างๆ จะถูกตีความโดยการใช้ /mnt เป็นรูทจริงวิธีนี้ช่วยให้เราทำงานได้อย่างสะดวกสบาย เช่น การอัปเดต GRUB การปรับการตั้งค่า การติดตั้งแพ็กเกจ เป็นต้น
เพื่อความสะดวก เราสามารถเปลี่ยนข้อความแจ้งเตือนเพื่อให้ชัดเจนว่าเราอยู่ในโหมด chroot ได้ เช่น:
ส่งออก PS1="(chroot) $PS1"
ติดตั้งและกำหนดค่า GRUB บนดิสก์
ในขั้นตอนนี้ ระบบได้รับการกู้คืนลงดิสก์เรียบร้อยแล้ว แต่ก็ยังไม่สามารถบูตได้เนื่องจากไม่มีบูตโหลดเดอร์ที่ใช้งานได้ จากสภาพแวดล้อม chroot ขั้นตอนปกติคือ อัปเดตเมนู GRUB จากนั้นติดตั้งลงใน MBR หรือไดรฟ์ที่เกี่ยวข้อง
ขั้นแรก เราจะอัปเดตเมนู GRUB เพื่อตรวจจับระบบที่มีอยู่บนดิสก์และสร้างไฟล์การกำหนดค่า ซึ่งโดยปกติจะใช้คำสั่ง:
sudo update-grub
ขั้นตอนต่อไป เราจะติดตั้ง GRUB ลงในดิสก์ที่เหมาะสม (ไม่ใช่บนพาร์ติชั่น แต่บนอุปกรณ์ดิสก์ เป็นต้น) / dev / SDA (สำหรับอัลบั้มแรก):
sudo grub-install /dev/sda
ด้วยวิธีนี้ เมื่อเรารีสตาร์ทระบบ และระบบใช้ดิสก์นั้นเป็นอุปกรณ์บูต GRUB ควรจะโหลดเมนูได้อย่างถูกต้องและอนุญาตให้ระบบที่กู้คืนบูตได้ ขอแนะนำให้ตรวจสอบ BIOS/UEFI ระบบถูกตั้งค่าให้บูตจากดิสก์ที่เราติดตั้ง GRUB ไว้.
หากเราพบปัญหาเกี่ยวกับสิทธิ์การเข้าถึงในโฟลเดอร์ต่างๆ เช่น /tmp ซึ่งทำให้สภาพแวดล้อมกราฟิกไม่สามารถเริ่มต้นได้ เราสามารถแก้ไขปัญหานี้ได้จากคอนโซลข้อความ (Ctrl+Alt+F1) โดยล็อกอินด้วยบัญชีผู้ใช้ของเราและใช้คำสั่งประมาณนี้:
sudo chmod 777 /tmp
รายละเอียดเหล่านี้ขึ้นอยู่กับวิธีการสร้างไฟล์สำรองข้อมูลเป็นอย่างมาก แต่โดยทั่วไปแล้วสามารถแก้ไขได้ง่ายเมื่อระบบรีสตาร์ท จากนั้นเราก็สามารถใช้งานได้ตามปกติอีกครั้ง และหากต้องการ เราก็สามารถ... ตั้งค่าระบบสำรองข้อมูลเป็นระยะอัตโนมัติ.
เครื่องมือการกู้คืนเฉพาะในระบบปฏิบัติการลินุกซ์
นอกเหนือจากวิธีการ "แบบดั้งเดิม" ในการซ่อมแซมยางมะตอยแล้ว ยังมีเครื่องมือและชุดอุปกรณ์ที่ออกแบบมาโดยเฉพาะสำหรับงานนี้อีกด้วย ลดความซับซ้อนในการสำรองข้อมูลและกู้คืนระบบ Linuxหนึ่งในโปรแกรมที่เป็นที่รู้จักกันดีในแวดวงธุรกิจคือ Relax-and-Recover (ReaR) ซึ่งช่วยให้คุณสร้างอิมเมจระบบและสื่อกู้คืนแบบกำหนดเองได้
ตัวอย่างเช่น ในระบบที่ใช้ Red Hat เราสามารถติดตั้ง ReaR พร้อมกับยูทิลิตี้ที่จำเป็นในการสร้างอิมเมจ ISO และบูตโหลดเดอร์โดยใช้คำสั่งเช่นนี้:
yum install rear genisoimage syslinux
ReaR มีหน้าที่เตรียมสภาพแวดล้อมการกู้คืนที่สามารถกู้คืนเซิร์ฟเวอร์ได้ในกรณีเกิดภัยพิบัติ โดยการรวมสคริปต์ การกำหนดค่าระบบ และอื่นๆ เข้าด้วยกัน นอกจากแพ็คเกจ syslinux แล้ว ยังใช้เครื่องมือเตรียมไฟล์ภาพ เช่น genisoimage อีกด้วย ซึ่งมีบูตโหลดเดอร์ที่แตกต่างกัน
นอกเหนือจากแวดวงธุรกิจแล้ว เครื่องมือ "ไทม์แมชชีน" ยังได้รับความนิยมอย่างมากในคอมพิวเตอร์ตั้งโต๊ะและคอมพิวเตอร์ส่วนบุคคล ช่วยให้ผู้ใช้สามารถสร้างภาพรวมของระบบตามกำหนดเวลา และกู้คืนได้ด้วยการคลิกหรือคำสั่งเพียงไม่กี่ครั้ง
ไดเร็กทอรีและส่วนประกอบที่สำคัญต่อการเริ่มต้นระบบ
เพื่อให้การกู้คืนระบบเป็นไปอย่างราบรื่น จำเป็นอย่างยิ่งที่จะต้องทราบว่าส่วนประกอบสำคัญแต่ละส่วนของกระบวนการบูตอยู่ที่ใด โดยเฉพาะอย่างยิ่ง ไดเร็กทอรี /boot ประกอบด้วยองค์ประกอบที่สำคัญที่สุด: อิมเมจเคอร์เนล, initramfs, ไฟล์ GRUB เป็นต้น
ภายใน /boot เรามักจะพบไดเร็กทอรีย่อยต่างๆ เช่น /boot/grub/ซึ่งเป็นที่เก็บโมดูลตัวจัดการการบูตและไฟล์การกำหนดค่า รวมถึงรายการที่กำหนดว่าระบบจะโหลดเคอร์เนลใด
นอกจากนี้ยังมีอิมเมจ initrd หรือ initramfs อยู่ด้วย (/boot/initrd.img หรือ initramfs (โดยมีคำต่อท้ายเวอร์ชันที่แตกต่างกัน) รูปภาพเหล่านี้มีระบบไฟล์ขนาดเล็กใน RAM ซึ่งใช้ในขั้นตอนการบูตช่วงแรกเพื่อโหลดโมดูล ตรวจจับดิสก์ และเมานต์รูทจริง
ในระบบที่ใช้ UEFI นั้น พาร์ติชัน EFI โดยปกติจะติดตั้งบน / boot / EFI และสามารถใช้งานร่วมกันได้ระหว่างระบบปฏิบัติการต่างๆ โดยจะจัดเก็บไฟล์ไบนารี .efi ซึ่งทำหน้าที่เป็นบูตโหลดเดอร์สำหรับ Linux, Windows หรือระบบอื่นๆ
สุดท้าย ในระบบคลาสสิกที่มี sysvinit นั้นจะมีไฟล์ดังกล่าว / etc / inittabโดยที่กำหนดระดับการทำงานและพฤติกรรมการบูต แม้ว่าระบบปฏิบัติการหลายๆ ระบบจะเปลี่ยนไปใช้ systemd และกลไกอื่นๆ แล้ว แต่การทำความเข้าใจแนวคิดเหล่านี้ (โหมดผู้ใช้คนเดียว โหมดผู้ใช้หลายคน ฯลฯ) ยังคงมีประโยชน์มากสำหรับการทำความเข้าใจ โหมดกู้ภัยและฉุกเฉิน.
โหมดกู้ภัยและฉุกเฉินด้วย systemd และ GRUB
ในระบบสมัยใหม่ที่ใช้ systemd นอกเหนือจากการบูตตามปกติแล้ว เรายังมีเป้าหมายพิเศษที่ออกแบบมาสำหรับการกู้คืน เช่น rescue.target และ emergency.targetโหมดเหล่านี้จะเริ่มต้นระบบด้วยบริการขั้นต่ำ ทำให้สามารถซ่อมแซมได้โดยไม่รบกวนระบบ
เมื่อระบบยังคงแสดงเมนู GRUB อยู่ เราสามารถใช้เมนูนั้นเพื่อเลือกตัวเลือกขั้นสูงได้ ดิสทริบิวชันหลายๆ ตัว เช่น Ubuntu มีรายการโดยตรงสำหรับตัวเลือกเหล่านี้ ตัวเลือกขั้นสูง โดยมีตัวเลือก “(โหมดกู้คืน)” สำหรับเคอร์เนลที่ติดตั้งแต่ละตัว
จากเมนูย่อยนี้ คุณสามารถโหลดโปรแกรมยูทิลิตี้ที่มีประโยชน์มากสำหรับการวินิจฉัยและซ่อมแซมได้ เช่น ตรวจสอบพาร์ติชั่นด้วย fsck, ลองซ่อมแซมแพ็กเกจที่เสียหายด้วย dpkg, อัปเดต GRUB, เปิดใช้งานเครือข่าย หรือบูตเชลล์ด้วยสิทธิ์ root
อีกทางเลือกหนึ่งคือการใช้โปรแกรมแก้ไข GRUB (กด E ที่รายการ) เพื่อเพิ่มพารามิเตอร์พิเศษลงท้ายบรรทัด Linux เช่น systemd.unit=ฉุกเฉิน.เป้าหมาย o systemd.unit=rescue.targetด้วยวิธีนี้ แม้ว่าเราจะไม่มีรายการดังกล่าวในเมนูอย่างชัดเจน เราก็สามารถบังคับให้บูตเข้าสู่โหมดฉุกเฉินเหล่านั้นได้โดยตรง
Emergency.target จะเริ่มต้นสภาพแวดล้อมพื้นฐานมาก ๆ โดยมีเพียงเชลล์ root และระบบไฟล์แบบอ่านอย่างเดียว เหมาะสำหรับ ตรวจสอบบันทึก, ติดตั้งระบบใหม่, แก้ไขไฟล์ fstab หรือยกเลิกการเปลี่ยนแปลงการกำหนดค่า ซึ่งทำให้การเริ่มต้นระบบตามปกติหยุดชะงัก
การใช้งานจริงของโหมดกู้คืนในระบบปฏิบัติการต่างๆ เช่น Ubuntu
หากคุณเลือกตัวเลือกขั้นสูงจาก GRUB จากนั้นเลือกรายการที่ระบุว่า (โหมดกู้คืน) ระบบปฏิบัติการหลายๆ ตัวจะแสดงเมนูเพิ่มเติมที่มีเครื่องมือการกู้คืนต่างๆ ตัวอย่างเช่น ใน Ubuntu คุณมักจะเห็นตัวเลือกต่างๆ เช่น:
- เรซูเม่ลองบูตเครื่องตามปกติอีกครั้งจากเคอร์เนลนั้นดู
- ปลาเดยส์: เปิดเชลล์พร้อมคำสั่งสำหรับ พื้นที่ว่าง หากพื้นที่ในดิสก์เต็ม
- dpkg: ซ่อมแซมหรือลบแพ็กเกจที่เสียหายซึ่งอาจขัดขวางกระบวนการบูต โดยดึงข้อมูลจากที่เก็บข้อมูลหากเปิดใช้งานเครือข่าย
- ฟค: ทำการตรวจสอบระบบไฟล์และพาร์ติชั่นเพื่อตรวจจับและแก้ไขข้อผิดพลาด
- ด้วง: วิเคราะห์และอัปเดตตัวจัดการบูตเอง
- เครือข่าย: เปิดใช้งานเครือข่าย ซึ่งมีประโยชน์สำหรับการติดตั้งหรือดาวน์โหลดแพ็คเกจซ่อมแซม
- ราก: เปิดเชลล์ในฐานะผู้ใช้ระดับสูงสุด ซึ่งเราสามารถทำการเปลี่ยนแปลงการตั้งค่าขั้นสูงได้
- สรุประบบ: แสดงข้อมูลสรุปของระบบ เวอร์ชันเคอร์เนล ดิสก์ ฯลฯ
เครื่องมือเหล่านี้ เมื่อใช้ร่วมกับความรู้พื้นฐานเกี่ยวกับคำสั่งต่างๆ เช่น mount, fsck, systemctl, journalctl หรือ nano/viเครื่องมือเหล่านี้ช่วยให้คุณแก้ไขปัญหาจำนวนมากได้โดยไม่ต้องติดตั้งระบบใหม่ทั้งหมดตั้งแต่เริ่มต้น
การทำงานร่วมกับเชลล์ GRUB และหลักเกณฑ์การตั้งชื่อดิสก์
ในกรณีที่เกิดความล้มเหลวร้ายแรงกว่านั้น ระบบอาจไม่สามารถบูตได้ตามปกติ และเราอาจสามารถโต้ตอบได้เฉพาะกับพรอมต์ GRUB เท่านั้น กรุบ> (เปลือกหอยปกติ) หรือ กู้ภัยด้วง> (โหมดการกู้คืนที่จำกัดมากขึ้น) แม้ในสถานการณ์เช่นนี้ เราก็ยังมีช่องทางในการดำเนินการอยู่
จากเมนู GRUB เราสามารถเข้าถึงบรรทัดคำสั่งได้โดยการกดปุ่ม C ซึ่งจะเปิดสภาพแวดล้อมที่เราสามารถเรียกใช้คำสั่งเฉพาะของบูตโหลดเดอร์ แสดงรายการดิสก์ ค้นหาเคอร์เนล โหลดโมดูล และอื่นๆ ได้ เตรียมการเริ่มต้นระบบด้วยตนเอง.
สิ่งสำคัญที่ควรทราบคือ GRUB ไม่ได้ตั้งชื่อดิสก์และพาร์ติชั่นในลักษณะเดียวกับ Linux ในขณะที่ Linux ใช้ /dev/sda, /dev/sdb ฯลฯ สำหรับดิสก์ และ /dev/sda1, /dev/sda2… สำหรับพาร์ติชั่น แต่ GRUB ใช้ไวยากรณ์แบบนี้ (hd0,0), (hd0,1), (hd1,0)ฯลฯ
โดยคร่าวๆ เราสามารถเชื่อมโยง /dev/sda กับ hd0, /dev/sdb กับ hd1 และอื่นๆ ส่วนพาร์ติชั่นนั้น GRUB จะใช้ดัชนีในวงเล็บ โดยคั่นด้วยเครื่องหมายจุลภาคระหว่างดิสก์และพาร์ติชั่น ซึ่งเป็นสิ่งสำคัญมากที่ต้องจำไว้เมื่อพยายามค้นหาพาร์ติชั่นนั้นๆ /boot หรือ root จาก GRUB shell.
ด้วยคำสั่งที่เหมาะสม (ls, set, linux, initrd, boot ฯลฯ) และเมื่อระบุพาร์ติชันที่เคอร์เนลและ initramfs ตั้งอยู่ได้แล้ว ก็สามารถบูตระบบด้วยตนเอง จากนั้นจึงกู้คืนการกำหนดค่า GRUB ปกติจากระบบโดยใช้เครื่องมือทั่วไปได้
การกู้คืนขั้นสูงจาก UEFI Shell
ในเครื่องคอมพิวเตอร์รุ่นใหม่ที่มี UEFI บางครั้งปัญหาอาจไม่ได้อยู่ที่ Linux เอง แต่เป็นที่... การสูญหายหรือความเสียหายของรายการบูตที่ชี้ไปยังไฟล์ .efi จากที่ชาร์จ ในกรณีเหล่านั้น เราอาจเห็นเฉพาะข้อความแจ้งเตือนแบบ UEFI ชื่อ Shell> เมื่อเปิดอุปกรณ์
เชลล์ UEFI นี้มีวิธีการอ้างอิงอุปกรณ์เฉพาะตัว ไม่มี /dev/sda หรือ hd0: ในระหว่างการบูต โดยปกติจะแสดง "ตารางการแมป" ซึ่งเราจะเห็นไดรฟ์ที่ถูกทำเครื่องหมายไว้ FS0, FS1, FS2…ซึ่งตรงกับ /dev/sda, /dev/sdb เป็นต้น
ในการเรียกดูระบบไฟล์เหล่านี้ จะใช้เส้นทางที่มีเครื่องหมายแบ็กสแลช (\) แทนเครื่องหมาย / และแป้นพิมพ์จะถือว่าอยู่ในรูปแบบภาษาอังกฤษ ดังนั้น ตำแหน่งของอักขระต่างๆ เช่น เครื่องหมายโคลอน เครื่องหมายทับ เป็นต้น จะแตกต่างไปจากแป้นพิมพ์ภาษาสเปน.
จากสภาพแวดล้อมนี้ คุณสามารถแสดงรายการอุปกรณ์ เปลี่ยนไดรฟ์ ไปยังพาร์ติชั่น EFI และค้นหาไฟล์ไบนารี .efi ของบูตโหลดเดอร์ได้ มีเครื่องมือและคำสั่ง (และแม้แต่โปรแกรมแก้ไขที่เรียกว่า edit) ที่ช่วยให้คุณปรับแต่งการตั้งค่าบูต เพิ่มหรือแก้ไขรายการ และอื่นๆ ได้ ตั้งค่าเฟิร์มแวร์ให้ชี้ไปยังที่ชาร์จที่ถูกต้องอีกครั้ง.
อย่างไรก็ตาม การแก้ไขกระบวนการบูต UEFI โดยไม่รู้ว่ากำลังทำอะไรอยู่ อาจทำให้เครื่องอยู่ในสภาพที่แย่กว่าเดิม ดังนั้นจึงควรดำเนินการด้วยความระมัดระวังและปฏิบัติตามเอกสารเฉพาะ (เช่น คู่มือ UEFI Shell อย่างเป็นทางการ) หากคุณไม่มีประสบการณ์มาก่อน
“ไทม์แมชชีน” ในลินุกซ์: การสร้างสแนปช็อตด้วย TimeShift
ผู้ที่เคยใช้ Windows มาก่อนมักจะคิดถึงฟังก์ชันที่คล้ายกับ System Restore หรือ Time Machine ของ macOS Linux มีโซลูชันที่ทำหน้าที่คล้ายกันมาก และหนึ่งในฟังก์ชันที่ได้รับความนิยมมากที่สุดในเดสก์ท็อปที่ใช้ Debian/Ubuntu คือ... เปลี่ยนเวลา.
TimeShift อนุญาตให้คุณกำหนดตำแหน่งที่จะบันทึกสแนปช็อต (ภาพรวม) ของระบบและกำหนดตารางเวลาอัตโนมัติว่าจะสร้างไฟล์เหล่านั้นบ่อยแค่ไหน: ตัวอย่างเช่น ทุกสองสัปดาห์ โดยเก็บเฉพาะสองไฟล์ล่าสุดเพื่อไม่ให้พื้นที่ดิสก์เต็ม
ในระหว่างการตั้งค่าเริ่มต้น เราสามารถเลือกได้ว่าจะยกเว้นไดเร็กทอรีใดบ้างจากการสร้างสแนปช็อต เพื่อให้ระบบมุ่งเน้นไปที่ไฟล์ระบบและไฟล์การกำหนดค่า โดยไม่ทำซ้ำข้อมูลส่วนบุคคลที่เราบันทึกไว้แล้วด้วยเครื่องมืออื่น
เมื่อตั้งค่าเสร็จแล้ว การสร้าง "จุดคืนค่า" ก็ทำได้ง่ายๆ เพียงแค่เปิดแอปพลิเคชันแล้วกดปุ่ม สร้างโปรแกรมจะจัดการสร้างภาพสแนปช็อตให้เอง และเมื่อเสร็จสิ้น เราจะสามารถเห็นภาพสแนปช็อตนั้นปรากฏอยู่ในรายการเดียวกับภาพสแนปช็อตอื่นๆ ที่มีอยู่
การกู้คืนระบบจากจุดใดจุดหนึ่งเหล่านั้นก็ทำได้ง่ายมากเช่นกัน: เราเลือกสแนปช็อตแล้วกด ฟื้นฟู ผ่านทางอินเทอร์เฟซ หรือเราทำงานจากเทอร์มินัลโดยการเรียกใช้คำสั่งต่างๆ เช่น รายการไทม์ชิฟต์ เพื่อดูภาพรวมที่มีอยู่และ ไทม์ชิฟต์ – กู้คืน เพื่อคืนค่าระบบให้กลับสู่สถานะเดิมที่กำหนดไว้
การกู้คืนข้อมูลในระบบลินุกซ์
บางครั้งปัญหาหลักไม่ใช่ว่าระบบไม่สามารถเริ่มต้นทำงานได้ แต่เป็นการสูญหายของไฟล์สำคัญเนื่องจากการลบโดยไม่ได้ตั้งใจหรือข้อผิดพลาดของระบบไฟล์ ในกรณีเหล่านี้ เราเรียกมันว่า... การกู้คืนข้อมูลบนระบบลินุกซ์แทนที่จะเป็นการกู้คืนระบบปฏิบัติการ
ลินุกซ์สามารถใช้ระบบไฟล์ได้หลายประเภท แต่ในทางปฏิบัติแล้ว ระบบไฟล์ตระกูลต่อไปนี้เป็นที่นิยมใช้กันทั่วไปในสภาพแวดล้อมเดสก์ท็อปและเซิร์ฟเวอร์: ext2, ext3 และ ext4โดยทั่วไปแล้ว การแจกจ่ายแบบต่างๆ มักเลือกใช้แบบใดแบบหนึ่งเป็นค่าเริ่มต้น
ตัวอย่างเช่น Debian GNU/Linux และ Slackware ใช้ ext2 ในขณะที่ Red Hat, Fedora, Ubuntu และ CentOS ใช้ ext3 ในหลายเวอร์ชัน และเวอร์ชันใหม่กว่าของระบบปฏิบัติการอย่าง Arch, Ubuntu 9, Fedora 11, CentOS 6 และ Debian 7 ก็ใช้ ext3 เช่นกัน พวกเขาเลือกใช้ ext4 เป็นระบบไฟล์อ้างอิง.
ขึ้นอยู่กับระบบไฟล์และวิธีการที่ข้อมูลสูญหาย (การลบแบบตรรกะ พาร์ติชั่นเสียหาย ดิสก์มีเซกเตอร์เสีย ฯลฯ) เราจะใช้เครื่องมือที่แตกต่างกัน ตั้งแต่ fsck สำหรับซ่อมแซมโครงสร้างพื้นฐาน ไปจนถึงเครื่องมือวิเคราะห์ทางนิติวิทยาศาสตร์และการกู้คืนขั้นสูง โดยให้ความสำคัญกับการไม่เขียนข้อมูลลงในดิสก์ที่ได้รับผลกระทบเป็นอันดับแรกเสมอ เพิ่มโอกาสแห่งความสำเร็จให้สูงสุด.
ในสถานการณ์วิกฤตที่เกี่ยวข้องกับข้อมูลที่มีมูลค่าสูงเป็นพิเศษ การใช้บริการกู้คืนข้อมูลระดับมืออาชีพที่มีประสบการณ์กับระบบ Linux และคุ้นเคยกับรายละเอียดเฉพาะของแต่ละเวอร์ชันและระบบไฟล์นั้นมักจะเป็นทางเลือกที่รอบคอบกว่า
เมื่อพิจารณาเทคนิคและเครื่องมือทั้งหมดนี้แล้ว เห็นได้ชัดว่า Linux นำเสนอความเป็นไปได้ที่หลากหลายมากในการหลีกเลี่ยงการติดตั้งระบบใหม่ที่ยุ่งยาก: ตั้งแต่การกู้คืนข้อมูลสำรองทั้งหมดด้วย tar หรือ ReaR การใช้สแนปช็อตที่สะดวกสบายด้วย TimeShift การใช้โหมดกู้คืนและฉุกเฉินของ systemd และ GRUB ไปจนถึงการลงรายละเอียดใน GRUB หรือ UEFI Shell เมื่อเกิดปัญหาซับซ้อน และอย่าลืมว่ายังมีตัวเลือกในการกู้คืนข้อมูลในระบบไฟล์ ext2/3/4 เมื่อระบบเสียหายเกินกว่าจะซ่อมแซมได้ แต่เรายังต้องการบันทึกข้อมูลสำคัญไว้
นักเขียนผู้หลงใหลเกี่ยวกับโลกแห่งไบต์และเทคโนโลยีโดยทั่วไป ฉันชอบแบ่งปันความรู้ผ่านการเขียน และนั่นคือสิ่งที่ฉันจะทำในบล็อกนี้ เพื่อแสดงให้คุณเห็นสิ่งที่น่าสนใจที่สุดเกี่ยวกับอุปกรณ์ ซอฟต์แวร์ ฮาร์ดแวร์ แนวโน้มทางเทคโนโลยี และอื่นๆ เป้าหมายของฉันคือการช่วยคุณนำทางโลกดิจิทัลด้วยวิธีที่เรียบง่ายและสนุกสนาน