กำลังโหลดระบบปฏิบัติการ Linux รันสคริปต์เมื่อ linux เริ่มต้นหรือปิดระบบ การกำหนดค่าฮาร์ดแวร์

ลำดับการบูตระบบ Linux ประกอบด้วยขั้นตอนต่อไปนี้:

BIOS (ระบบอินพุต-เอาท์พุตพื้นฐาน - ระบบอินพุต/เอาท์พุตพื้นฐาน)

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

โดยทั่วไปนี่คือ:

  • ไดรฟ์ซีดีรอม
  • ฮาร์ดไดรฟ์
  • ดิสก์ไดรฟ์ (ใช้น้อยลง)

รายการขึ้นอยู่กับความสามารถของ BIOS เฉพาะและฮาร์ดแวร์ของคุณ

ลำดับความสำคัญในการบูตสามารถเปลี่ยนแปลงได้ใน BIOS การตั้งค่าไบออส“และตามกฎแล้ว คุณสามารถกด Del, F1, F2 หรือ F10 ในขณะที่คอมพิวเตอร์กำลังบูทได้

MBR (มาสเตอร์บูตเรคคอร์ด)

เซกเตอร์แรกของอุปกรณ์เก็บข้อมูลที่สามารถบูตได้สงวนไว้สำหรับเซกเตอร์หลัก รายการบูต- เมื่ออุปกรณ์บู๊ต BIOS จะโหลดและรันโปรแกรมโหลดบูต ระบบปฏิบัติการ(บูตโหลดเดอร์) อยู่ใน MBR

ในกรณีส่วนใหญ่ bootloader ค่อนข้างซับซ้อนและไม่สามารถรองรับ 512 ไบต์ที่ MBR จัดสรรไว้ได้ ในกรณีนี้ MBR ประกอบด้วยสิ่งที่เรียกว่า stage1 ซึ่งเป็นโปรแกรมที่โหลดโปรแกรมของขั้นตอนที่สองของการโหลดระบบปฏิบัติการ - stage2 (บางครั้งบูตเซกเตอร์จะถูกโหลดเป็น stage2 พาร์ติชันที่ใช้งานอยู่, ตัวจัดการการบูตหรือการอนุญาตและโปรแกรมป้องกันการเข้าถึง)

โดยเฉพาะอย่างยิ่ง stage2 ของตัวโหลดบูต GRUB จะอ่านข้อมูลจากไฟล์ /boot/grub/grub.conf (หรือ /boot/grub/menu.lst ขึ้นอยู่กับเวอร์ชัน) ซึ่งมีรายการระบบปฏิบัติการที่มีอยู่ทั้งหมดและการบูต ตัวเลือก หลังจากนี้ รายการระบบปฏิบัติการจะปรากฏขึ้นบนหน้าจอซึ่งผู้ใช้เลือกระบบปฏิบัติการที่จะบูต

ตัวโหลดระบบปฏิบัติการ

ในบางกรณี stage1 ของ GRUB (GRand Unified Bootloader) จะโหลด stage1.5 ซึ่งโค้ดจะอยู่ในสามสิบกิโลไบต์แรกของอุปกรณ์จัดเก็บข้อมูลทันทีหลังจาก MBR และ stage1.5 จะโหลด stage2 แล้ว

เมื่อ stage2 ได้รับการควบคุม เมนูกราฟิก (หลอก) จะปรากฏขึ้นเพื่อให้ผู้ใช้เลือกระบบปฏิบัติการที่จะบูต เป็นที่น่าสังเกตว่าตัวเลือกการบูตสามารถเปลี่ยนได้จากเมนูเดียวกันซึ่งช่วยให้คุณสามารถกู้คืนระบบได้หลังจาก menu.lst หรือ grub.conf เสียหายโดยไม่ตั้งใจ

เมื่อเลือกตัวเลือกการบูตแล้ว GRUB จะโหลดเคอร์เนลที่เลือกลงในหน่วยความจำและถ่ายโอนการควบคุมไปยังเคอร์เนล จากนั้นจึงดำเนินการบูตระบบต่อไป GRUB ยังสามารถถ่ายโอนการควบคุมไม่ได้ไปยังเคอร์เนล แต่ไปยัง bootloader อื่นโดยใช้สิ่งที่เรียกว่า chainloading เช่นไปยัง bootloader ของระบบปฏิบัติการที่ไม่รองรับมาตรฐาน Multiboot

แกนกลาง

ในทางกลับกัน เคอร์เนลจะตรวจสอบการกำหนดค่าฮาร์ดแวร์ เริ่มต้นอุปกรณ์ และรัน initrd (เป็นทางเลือก) หลังจากนั้นจะเมาท์อุปกรณ์ที่ระบุในพารามิเตอร์การบูตเป็น "root" เป็นระบบไฟล์รูท

ระบบไฟล์ของอุปกรณ์จะถูกตรวจพบโดยอัตโนมัติ หากการติดตั้งล้มเหลวด้วยเหตุผลบางประการ ระบบจะเกิดปัญหาเคอร์เนลแพนิคและการดาวน์โหลดจะหยุดลง

หลังจากติดตั้งสำเร็จ ระบบไฟล์เคอร์เนลจะเริ่มต้น init daemon ซึ่งได้รับ ID กระบวนการเป็นหนึ่งเดียวและเริ่มต้นส่วนที่เหลือของระบบ

เริ่มต้น

เริ่มต้นคือ ขั้นตอนสุดท้ายในลำดับการบูตระบบ init เป็นพาเรนต์ (หรือบรรพบุรุษที่ห่างไกลกว่า) ของกระบวนการทั้งหมดที่ทำงานบนระบบ กระบวนการนี้เป็นกระบวนการแรกที่เริ่มต้นในระบบและเปิดใช้งานโดยตรงโดยเคอร์เนล นอกจากนี้ยังเริ่มกระบวนการของระบบทั้งหมดตามที่ระบุไว้ใน /etc/inittab

ในขณะที่ระบบกำลังทำงาน init จะไม่เสร็จสมบูรณ์ เป็นที่น่าสังเกตว่า init เป็นกระบวนการของผู้ใช้ ไม่ใช่กระบวนการของระบบ แม้ว่าจะเปิดตัวในฐานะรูทก็ตาม

ระดับการวิ่ง

แต่ละรายการใน /etc/inittab มีสิ่งที่เรียกว่า "runlevel" สำหรับกระบวนการ กล่าวคือ ข้อมูลเกี่ยวกับกระบวนการนี้ที่ควรจะเริ่มต้นระบบในระดับใด

บนระบบ Linux มีเจ็ดค่าที่เป็นไปได้สำหรับระดับการทำงานตั้งแต่ 0 ถึง 6 รวม:

  1. การหยุดระบบ
  2. โหมดผู้ใช้คนเดียว
  3. กำหนดโดยผู้ใช้ โดยปกติจะเป็นโหมดผู้ใช้หลายคนโดยไม่มีการสนับสนุนเครือข่ายหรือเชลล์แบบกราฟิก
  4. โหมดผู้ใช้หลายคนโดยไม่มีเชลล์กราฟิก
  5. ผู้ใช้กำหนด โดยทั่วไปไม่ได้ใช้
  6. โหมดผู้ใช้หลายคนพร้อมเชลล์กราฟิก

ตามระดับรันปัจจุบัน init จะรันสคริปต์ที่อยู่ในไดเร็กทอรีย่อย /etc/rc.d/ แต่ละระดับรันจะมีไดเร็กทอรีย่อยของตัวเอง ตั้งแต่ /etc/rc.d/rc0.d ถึง /etc/rc.d/rc6.d .

ในความเป็นจริง การเรียกใช้สคริปต์ในแต่ละระดับรันจะดำเนินการโดยสคริปต์ /etc/rc ซึ่งถูกเรียกในแต่ละระดับรันโดยมีพารามิเตอร์เท่ากับระดับปัจจุบัน การเรียก /etc/rc ด้วยพารามิเตอร์ถูกลงทะเบียนใน /etc/inittab สำหรับแต่ละระดับการรันที่เป็นไปได้

ระดับการรันดีฟอลต์ถูกกำหนดโดยรายการใน /etc/inittab:

รหัส:3:ค่าเริ่มต้นเริ่มต้น:

ระดับรันปัจจุบันสามารถเปลี่ยนแปลงได้โดยการโทร:

/sbin/telinit #

โดยที่ # คือระดับการวิ่งที่ต้องการ เหล่านั้น. การเรียก "/sbin/telinit 6" จะรีบูตระบบ

กดปุ่มเปิดปิดบนยูนิตระบบของคุณ และหลังจากนั้นไม่กี่วินาที คุณจะเห็นหน้าต่างเข้าสู่ระบบ

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

ฉันขอแนะนำให้คุณทำความคุ้นเคยกับระดับการบูต Linux ทั่วไปต่อไปนี้:

1.ไบออส

  • BIOS รับผิดชอบอินพุต/เอาท์พุตพื้นฐานของข้อมูลจาก/ไปยังอุปกรณ์
  • ทำการตรวจสอบความสมบูรณ์ของอุปกรณ์บางอย่าง นอกจากนี้ POST (การทดสอบตัวเองเมื่อเปิดเครื่องหรือที่เรียกว่า "การทดสอบความเพียงพอของตัวเอง" ซึ่งดำเนินการเป็นขั้นตอนก่อนบูต) ซึ่งควบคุมโดย BIOS มีหน้าที่ในการทดสอบประสิทธิภาพของอุปกรณ์อิเล็กทรอนิกส์
  • ค้นหา โหลด และรันโปรแกรม OS bootloader
  • รับโหลดเดอร์จากฟล็อป ซีดี หรือ ฮาร์ดไดรฟ์- ขณะโหลด BIOS คุณสามารถกดปุ่ม (ปกติคือ F12 หรือ F2 หรือ Del ขึ้นอยู่กับแพลตฟอร์ม) หากคุณต้องการเปลี่ยนแปลงการตั้งค่าฮาร์ดแวร์
  • เมื่อตรวจพบ bootloader และโหลดลงในหน่วยความจำแล้ว BIOS จะถ่ายโอนการควบคุมไปยังตัวโหลดนั้น
  • กล่าวโดยย่อคือ BIOS จะโหลดและดำเนินการ Boot Record (MBR)

2.MBR

  • MBR คือมาสเตอร์บูตเรคคอร์ดที่จัดเก็บไว้ในฮาร์ดไดรฟ์
  • ตั้งอยู่ในภาคที่ 1 ดิสก์สำหรับบูตตัวอย่างเช่น /dev/hda หรือ /dev/sda
  • MBR ใช้เวลาน้อยกว่า 512 ไบต์ ประกอบด้วยสามองค์ประกอบ: 1) ข้อมูลการบูตหลัก "living" ใน 446 ไบต์แรก; 2) ข้อมูลเกี่ยวกับตารางพาร์ติชัน - ในอีก 64 ไบต์ถัดไป 3) และ 2 ไบต์สุดท้ายจำเป็นเพื่อตรวจสอบความถูกต้องของ mbr
  • มีข้อมูลเกี่ยวกับ GRUB (หรือ LILO)
  • พูดง่ายๆ - MBR โหลดและรันบูตโหลดเดอร์ GRUB

3.ด้วง

  • GRUB - แกรนด์ Unified Bootloader
  • หากระบบของคุณมีการติดตั้งเคอร์เนลไว้มากกว่าหนึ่งเคอร์เนล คุณจะสามารถเลือกได้ว่าควรรันเคอร์เนลตัวใด
  • GRUB แสดงแอนิเมชั่น plymouth Splash ที่สวยงาม และหลังจากรอสักสองสามวินาทีของการโต้ตอบกับผู้ใช้ หากพวกเขาไม่ได้กดปุ่มใดๆ ระบบจะโหลดเคอร์เนลเริ่มต้นในไฟล์กำหนดค่าด้วง
  • GRUB เข้าใจว่าระบบไฟล์คืออะไร (เช่น Linux bootloaders รุ่นเก่า LILO ไม่เข้าใจสิ่งนี้)
  • โดยปกติแล้วไฟล์คอนฟิกูเรชัน Grub จะอยู่ที่ /boot/grub/grub.conf (หรือ /etc/grub.conf อาจเป็นลิงก์สัญลักษณ์ก็ได้) นี่คือตัวอย่างไฟล์การกำหนดค่าสำหรับ CentOS:
    #boot=/dev/sda
    ค่าเริ่มต้น=0
    หมดเวลา=5
    สแปลชอิมเมจ=(hd0,0)/boot/grub/splash.xpm.gz
    เมนูที่ซ่อนอยู่
    ชื่อ CentOS (2.6.18-194.el5PAE)
    รูต (hd0,0)
    เคอร์เนล /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
    initrd /boot/initrd-2.6.18-194.el5PAE.img
  • ตามหมายเหตุข้อมูลข้างต้น ไฟล์การกำหนดค่ามีเส้นทางไปยังเคอร์เนลและอิมเมจเริ่มต้น
  • กล่าวโดยสรุป GRUB เพียงโหลดและรันเคอร์เนลและอิมเมจเริ่มต้น

4. เคอร์เนลหรือเคอร์เนล

  • เคอร์เนลเมานต์ระบบไฟล์ตามการตั้งค่า "root=" ใน grub.conf
  • รันโปรแกรม /sbin/init
  • เนื่องจาก init เป็นกระบวนการแรกที่เริ่มต้นโดยเคอร์เนล Linux จึงมีรหัสกระบวนการ (PID) เป็น #1 คุณสามารถเรียกใช้ “ps -ef | grep init" และตรวจสอบให้แน่ใจ
  • initrd คือ Initial RAM Disk หรือที่เรียกว่าดิสก์ชั่วคราว แรม
  • เคอร์เนลใช้ initrd เป็นระบบไฟล์รูทชั่วคราวจนกว่าเคอร์เนลจะบู๊ตเข้าสู่ระบบไฟล์ที่เมาท์จริง ดิสก์ชั่วคราวนี้ยังมีไดรเวอร์ที่สามารถบูตได้ซึ่งช่วยให้คุณเข้าถึงพาร์ติชันดิสก์และฮาร์ดแวร์อื่นๆ ได้

5.เริ่มต้น

  • ค้นหาในไฟล์ /etc/inittab เพื่อกำหนดระดับการรัน
  • มีระดับการดำเนินการดังต่อไปนี้:
    • 0 – ยกเลิกการดำเนินการ
    • 1 – โหมดผู้ใช้คนเดียว ที่เรียกว่า "โหมดผู้ใช้คนเดียว" หรืออีกนัยหนึ่งคือคอนโซลการกู้คืน
    • 2 – โหมดผู้ใช้หลายคนที่ไม่รองรับ NFS
    • 3 – โหมดผู้เล่นหลายคนเต็มรูปแบบ
    • 4 – ไม่ได้ใช้
  • Init กำหนดระดับการทำงานเริ่มต้นจาก /etc/inittab และใช้เพื่อโหลดโปรแกรมที่จำเป็นทั้งหมด
  • เรียกใช้ "grep initdefault /etc/inittab" บนระบบของคุณแล้วคุณจะพบว่าระดับเริ่มต้นของคุณคือระดับใด
  • หากคุณอยู่อย่างสงบไม่ได้ คุณสามารถติดตั้งได้ ระดับมาตรฐานถึง 0 หรือ 6 :)
  • ในกรณีส่วนใหญ่ ระดับ 3 หรือ 5 จะเพียงพอสำหรับคุณ

6. ระดับการทำงานของโปรแกรม (Runlevel)

  • เมื่อ Linux เริ่มทำงาน คุณจะเห็นบริการต่างๆ กำลังโหลดอยู่ ตัวอย่างเช่น อาจเป็นข้อความเช่น "กำลังเริ่ม Postfix ... OK" (Postfix กำลังเริ่มต้น) บริการเหล่านี้เรียกว่าโปรแกรม runlevel และดำเนินการจากไดเร็กทอรีที่สอดคล้องกับ runlevel ที่ต้องการ
  • ขึ้นอยู่กับการตั้งค่าเริ่มต้น ระบบจะดำเนินการไฟล์ตามไดเร็กทอรีต่อไปนี้
    • ระดับการดำเนินการ 0 – /etc/rc.d/rc0.d/
    • ระดับการดำเนินการ 1 – /etc/rc.d/rc1.d/
    • การดำเนินการระดับ 2 – /etc/rc.d/rc2.d/
    • การดำเนินการระดับ 3 - /etc/rc.d/rc3.d/
    • วิ่งระดับ 4 – /etc/rc.d/rc4.d/
    • ระดับการดำเนินการ 5 – /etc/rc.d/rc5.d/
    • การดำเนินการระดับ 6 - /etc/rc.d/rc6.d/
  • แต่โปรดจำไว้ว่าอาจมีลิงก์สัญลักษณ์ในไดเร็กทอรี /etc ด้วย ตัวอย่างเช่น /etc/rc0.d เชื่อมโยงกับ /etc/rc.d/rc0.d
  • ในไดเร็กทอรี /etc/rc.d/rc*.d/ คุณสามารถดูรายชื่อโปรแกรมที่ชื่อขึ้นต้นด้วยตัวอักษร S และ K
  • โปรแกรมที่ขึ้นต้นด้วย S ใช้ในการสตาร์ท ส เพราะ ทาร์ตอัพ
  • มีการใช้โปรแกรมที่ขึ้นต้นด้วยตัวอักษร K - อย่างถูกต้อง - เพื่อปิดการทำงาน เค เพราะว่า เคป่วย.
  • นอกจากนี้ยังมีตัวเลขอยู่ข้างตัวอักษร S และ K ในชื่อโปรแกรมอีกด้วย ตัวเลขเหล่านี้ใช้เพื่อกำหนดลำดับการทำงานของโปรแกรมเหล่านี้
  • ตัวอย่างเช่น S12syslog ได้รับการออกแบบมาเพื่อเรียกใช้ syslog daemon หมายเลขซีเรียล 12. S80sendmail - เพื่อเริ่มต้น sendmail daemon ด้วยหมายเลขลำดับ 80 ดังนั้นโปรแกรม syslog จะเปิดตัวก่อน sendmail

แค่นั้นแหละ. บางทีนี่อาจไม่ใช่เรื่องใหม่สำหรับคุณบางคน และไม่มีความสนใจในการอ่านบทความนี้เป็นพิเศษ เนื่องจากเน้นไปที่ความคุ้นเคยกับ Linux ระดับเริ่มต้น-กลางมากกว่า
ในกรณีนี้ ผมบอกได้แค่ว่า “การทำซ้ำเป็นบ่อเกิดของการเรียนรู้” (ค)

การเพิ่มเติม การแก้ไข การชี้แจง

ความคิดเห็นซ้ำแล้วซ้ำเล่าอ้างถึงเนื้อหาของบทความ ดังนั้นฉันคิดว่ามันคุ้มค่าที่จะคำนึงถึงความคิดเห็นที่สำคัญบางประการจากชุมชน Habra (ขอบคุณ artemlight, 3al, Tishka17, HhyperH, Next_Alex, Ilya_Shmelykh, Aux, soomrack, Xpeh)
  • artemlight: : “เอาล่ะ ยอมรับเถอะ ไม่ใช่ว่า distros ทั้งหมดจะโหลดด้วยวิธีนี้” คนส่วนใหญ่เห็นด้วยกับเขาโดยสังเกต init สไตล์ bsd, u-boot และแม้ว่า initrd จะถูกละเว้นจากบทความ แต่ก็เป็นที่น่าสังเกตว่าเคอร์เนลไม่จำเป็นต้องใช้ในการแจกแจงทั้งหมด มีการบันทึกไว้ด้วยว่า slackware รองรับ rc.d เท่านั้นเนื่องจากปัญหาความเข้ากันได้ และระบบฝังตัวมีการโหลดต่างกัน บางครั้งเดสก์ท็อปก็มี EFI และนอกจากนี้ Linux ยังได้รับความนิยมในโลกแบบฝังตัวและยังมีอีกมากมาย แพลตฟอร์มที่แตกต่างกัน- Linux โหลดแตกต่างกันบนโทรศัพท์
  • Soomrack อ้างถึง Wikipedia: ฉันอยากจะแสดงความคิดเห็นเกี่ยวกับ MBR ภาคแรก ฯลฯ ทุกอย่างค่อนข้างซับซ้อนมากขึ้นในช่วงไม่กี่ปีที่ผ่านมา ตอนนี้เป็นการเหมาะสมกว่าที่จะพูดคุยเกี่ยวกับ EFI

    “GUID Partition Table (GPT) เป็นรูปแบบมาตรฐานสำหรับการวางตารางพาร์ติชันบนฮาร์ดดิสก์จริง เป็นส่วนหนึ่งของ Extensible Firmware Interface (EFI) ซึ่งเป็นมาตรฐานที่ Intel เสนอเพื่อแทนที่ BIOS ที่ล้าสมัย ซึ่งเป็นหนึ่งในชิ้นส่วนสุดท้ายของ IBM PC ดั้งเดิม EFI ใช้ GPT โดยที่ BIOS ใช้ Master Boot Record (MBR) ..."

  • พวกเขายังขอให้เราจำ LILO อีกด้วย ลิโล่ เราจำคุณได้! สวัสดี!
  • Xpeh กล่าวเพิ่มเติมว่า “BIOS (และ (U)EFI ที่ไม่ได้กล่าวถึงในที่นี้) เกี่ยวข้องกับการเริ่มต้นอุปกรณ์เป็นหลัก (รวมถึงการโหลด BIOS ของอุปกรณ์ PCI ของตัวเอง) ไม่มีการเขียนเกี่ยวกับเรื่องนี้ แม้ว่าบทบาทนี้จะค่อยๆ ลดลง เนื่องจากฮาร์ดแวร์จำนวนมากขึ้นเรื่อยๆ เริ่มต้นตัวเองและ/หรือรองรับการเสียบปลั๊กร้อน และดังนั้นจึงยังคงเตรียมใช้งานโดยระบบปฏิบัติการ แต่ตัวอย่างเช่น จะเตรียมใช้งาน RAM เสมอ -
  • VolCh ชี้แจงการดาวน์โหลดสำหรับ Debian-Ubuntu OS:
    สำหรับเดเบียน/อูบุนตู:
    - ไม่มีไดเร็กทอรี /etc/rc.d/
    - ไดเร็กทอรี /etc/rc?.d/ เป็นไดเร็กทอรีจริง ไม่ใช่ลิงก์
    - ไดเร็กทอรีเหล่านี้จัดเก็บลิงก์ไปยังสคริปต์ในไดเร็กทอรี /etc/init.d/

    ไม่ควรแก้ไขอะไรด้วยตนเองใน /etc/rc?.d/ แต่ควรใช้คำสั่ง update-rc.d ซึ่งช่วยให้คุณสร้างลิงก์ ลบ และห้ามลิงก์ได้ (อันที่จริงแล้ว เปลี่ยนชื่อจาก S* เป็น K*) และอนุญาตให้ (จาก K* ถึง S*) เปิดตัว

Linux ก็เหมือนกับระบบปฏิบัติการอื่นๆ ที่จะบู๊ตในหลายขั้นตอนหลัก: -> การบูตระบบล่วงหน้า -> บูตโหลดเดอร์หลัก ลินุกซ์-> ตัวโหลดรอง -> โหลดพื้นที่ผู้ใช้ ( เริ่มต้น).

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

พิจารณาการโหลดระบบล่วงหน้า

งานของการบูตระบบล่วงหน้าคือการเลือกวิธีโหลดเคอร์เนลของระบบปฏิบัติการ.

ผู้ใช้สามารถเลือกวิธีการโหลดเคอร์เนลได้อย่างอิสระ เพื่อที่จะเลือกสิ่งที่คุณต้องการ ระบบพิเศษการจัดการ. ระบบควบคุมนี้มักเรียกว่า ตัวโหลด- ใน ลินุกซ์ bootloader ที่ได้รับความนิยมและใช้บ่อยที่สุดคือ bootloader LILO (ตัวโหลด Linux)และบูตโหลดเดอร์ GRUB (แกรนด์ Unified Bootloader)- พวกเขาให้ตัวเลือกแก่ผู้ใช้ในการเลือกประเภทการดาวน์โหลดที่กำหนดค่าไว้ล่วงหน้า ตัวโหลดทั้งสองนี้มีตัวเลือกข้อความ (คอนโซล) และอินเทอร์เฟซแบบกราฟิก งานหลักและสำคัญของ bootloaders ดังกล่าวคือการโหลดเคอร์เนลและทุกสิ่งที่จำเป็นสำหรับการเริ่มต้นระบบที่ประสบความสำเร็จลงในหน่วยความจำของคอมพิวเตอร์

ในการตั้งค่าเหล่านี้ คุณสามารถเลือกการบูตมาตรฐานของ Linux OS ที่คุณสามารถโทรได้ ยูทิลิตี้ระบบ(โปรแกรมเฉพาะกิจขนาดเล็ก) ระบุโปรแกรมที่จะเปิดใช้งานเมื่อโหลดระบบปฏิบัติการ และอื่นๆ อีกมากมาย

ด้วยวิธีง่ายๆ นี้ เราจึงหา “ตัวโหลดเคอร์เนล OS ลินุกซ์«!

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

การติดตั้ง Linux เป็นเรื่องง่าย แน่นอนว่ามีการแจกแจงเช่น Arch ซึ่งค่อนข้างยากในการติดตั้งสำหรับผู้เริ่มต้น แต่การแจกแจงที่ทันสมัยส่วนใหญ่นั้นติดตั้งง่ายมาก บางทีอาจจะง่ายกว่าและเร็วกว่า Windows ด้วยซ้ำ

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

คุณสามารถติดตั้ง Linux บนคอมพิวเตอร์ที่ทำงานอยู่ได้ การควบคุมหน้าต่างและ macOS หรือเว้นว่างไว้ ฮาร์ดไดรฟ์- คุณสามารถเลือก Linux เป็นระบบหลักของคุณ หรือใช้ร่วมกับระบบเก่าของคุณได้

1. ดาวน์โหลดการแจกจ่าย Linux

ก่อนอื่น คุณต้องเลือกการกระจาย Linux การให้คะแนน DistroWatch.com จะช่วยคุณตัดสินใจ

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

ตามกฎแล้ว การแจกแจงลินุกซ์เว็บไซต์อย่างเป็นทางการมีสองวิธีในการดาวน์โหลด วิธีแรกคือการดาวน์โหลดตามปกติ อย่างที่สองคือผ่าน P2P โดยใช้ไคลเอนต์ฝนตกหนัก วิธีที่สองนั้นเร็วกว่าตามธรรมชาติ ดังนั้นเลือกมันหากคุณต้องการประหยัดเวลา

เมื่อดาวน์โหลดชุดการแจกจ่ายในรูปแบบ ISO คุณจะต้องเบิร์นลงในซีดีหรือแฟลชไดรฟ์ USB ทั่วไป

คุณสามารถเบิร์นลงซีดีได้ วิธีการมาตรฐานระบบ: "Burn Disk Image" Windows หรือ "Disk Utility" macOS เพียงคลิกที่ภาพที่ดาวน์โหลด คลิกขวาเมาส์และเลือกรายการที่เหมาะสมในเมนู

ในการเบิร์น ISO ลงในแฟลชไดรฟ์คุณจะต้องมี สาธารณูปโภคพิเศษ- สำหรับ วินโดวส์ดีกว่าครับเลือก Rufus และสำหรับ macOS - UNetbootin โปรแกรมเหล่านี้มีอินเทอร์เฟซที่เรียบง่ายซึ่งค่อนข้างยากที่จะสับสน

3. เตรียมพาร์ติชั่นดิสก์

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

หน้าต่าง

เปิดการจัดการดิสก์ของ Windows เลือกไดรฟ์หรือพาร์ติชั่นที่คุณต้องการเพิ่มพื้นที่ในการติดตั้ง Linux สำหรับการแจกแจงส่วนใหญ่ 10 GB ก็เกินพอแล้ว แต่ถ้าคุณวางแผนที่จะติดตั้งแอพจำนวนมากก็รับเพิ่ม คลิกขวาที่พาร์ติชันแล้วเลือก Shrink Volume ป้อนขนาดแล้วคลิกตกลง

กระบวนการนี้อาจใช้เวลานานพอสมควร ดังนั้นโปรดอดทนรอ

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

หลังจากนั้น หากคุณไม่ต้องการ Linux คุณสามารถลบพาร์ติชั่นด้วย Linux และคืนพื้นที่ว่างให้กับ Windows โดยใช้ "เครื่องมือการจัดการดิสก์" เดียวกัน

ระบบปฏิบัติการ macOS

คุณสามารถจัดสรรพื้นที่สำหรับติดตั้ง Linux โดยใช้ " ยูทิลิตี้ดิสก์» macOS เลือกไดรฟ์ของคุณและคลิกที่ไอคอน “+” เพื่อสร้างพาร์ติชันสำหรับ Linux การสร้างพาร์ติชันใหม่อาจใช้เวลาสักครู่

4. เตรียมบูตโหลดเดอร์

หน้าต่าง

จุดนี้ใช้ได้กับคอมพิวเตอร์เครื่องใหม่ที่ติดตั้ง Windows 10, 8.1 หรือ 8 ไว้ล่วงหน้า คอมพิวเตอร์เหล่านี้ใช้ตัวโหลดการบูต UEFI ซึ่งจะไม่อนุญาตให้คุณบูตเข้าสู่สิ่งอื่นใดนอกจาก Windows

เพื่อแก้ไขปัญหานี้ ให้เข้าไปที่การตั้งค่า BIOS ของคอมพิวเตอร์ของคุณ และปิดการใช้งานตัวเลือก Secure Boot จากนั้นรีบูท เสร็จแล้ว คุณสามารถดาวน์โหลดและติดตั้งระบบอื่นๆ ถัดจาก Windows ของคุณได้

ระบบปฏิบัติการ macOS

Mac ต่างจากคอมพิวเตอร์ส่วนใหญ่ตรงที่ต้องใช้ขั้นตอนเพิ่มเติมสองสามขั้นตอนในการติดตั้ง Linux บนดูอัลบูทด้วย macOS

ก่อนอื่น ให้ปิดการใช้งาน SIP รีสตาร์ท Mac ของคุณแล้วกด Cmd + R เมนูการกู้คืน- เลือก "Terminal" ในนั้นและป้อน csrutil Disable

รีสตาร์ท Mac ของคุณอีกครั้ง SIP ถูกปิดใช้งาน

คู่มือ

เหมาะสมหากคุณต้องการกำหนดขนาดพาร์ติชั่นของคุณเองหรือสร้างพาร์ติชั่นแยกต่างหากสำหรับไฟล์ของคุณ หากต้องการทำสิ่งนี้ ให้เลือก "ตัวเลือกอื่น" แล้วคลิก "ดำเนินการต่อ"

Linux จะแสดงพาร์ติชั่นที่คุณมีบนคอมพิวเตอร์ของคุณ คุณสามารถลบ จัดรูปแบบ หรือในทางกลับกัน ปล่อยให้ส่วนต่างๆ มีข้อมูลที่คุณต้องการบันทึกเหมือนเดิม

หากต้องการติดตั้ง Linux แทนระบบของคุณ ให้เลือกพาร์ติชันด้วย ระบบที่ติดตั้งและลบออกด้วยปุ่ม “–” จากนั้นสร้างพาร์ติชันใหม่ในพื้นที่ว่าง

  • พาร์ติชั่นรูทสำหรับ ไฟล์ระบบลินุกซ์. เลือกระบบไฟล์ Ext4 และจุดเชื่อมต่อ /
  • พาร์ติชั่นสลับหรือพาร์ติชั่นสลับมีประโยชน์ถ้าคุณมี RAM ไม่เพียงพอ ไดรฟ์ SSD ที่รวดเร็ว- ในรายการระบบไฟล์ ให้เลือก "สลับพาร์ติชัน"
  • พาร์ติชั่นโฮมที่จะเก็บไฟล์ของคุณ เลือกระบบไฟล์ Ext4 และจุดเมานต์ /home

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

วิธีติดตั้ง Linux ถัดจากระบบปัจจุบันของคุณ

ติดตั้ง ลินุกซ์อยู่ใกล้ๆด้วยระบบของคุณมีสองวิธี

อัตโนมัติ

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

คู่มือ

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

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

8. ทำการติดตั้ง Linux ให้เสร็จสิ้น

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

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

จะทำอย่างไรหลังการติดตั้ง

เมื่อคุณรีบูทและเดสก์ท็อป Linux ของคุณปรากฏขึ้นตรงหน้า คุณสามารถทำทุกอย่างที่ทำได้ใน Windows และ macOS: ท่องอินเทอร์เน็ต แก้ไขเอกสาร และฟังเพลง อย่าลืมอัปเดตและดูที่ "App Store" (หรือเทียบเท่า ขึ้นอยู่กับการจัดจำหน่าย) เพื่อติดตั้งแอปพลิเคชันเพิ่มเติมที่คุณต้องการ

ลองใช้ Linux แล้วคุณจะเห็นว่าในชีวิตประจำวันมันไม่ได้ยากไปกว่า Windows หรือ macOS

bootloader รองแผนภาพด้วย แผนที่ที่ตั้ง- นี้จะทำงานกับ ลิโล่กิจกรรมที่ต้องได้รับการดูแลเพิ่มขึ้นเนื่องจากการเปลี่ยนขั้นตอนการโหลด ไม่ใช่อะตอม: ขั้นแรกผู้ใช้แก้ไขเคอร์เนลหรือโมดูล จากนั้นแก้ไขไฟล์ /etc/ lilo.confซึ่งมีข้อมูลเกี่ยวกับตัวเลือกการบูตของคอมพิวเตอร์ทั้งหมด จากนั้นจึงรันคำสั่ง ลิโล่ซึ่งรวบรวมตารางตำแหน่งสำหรับคอร์ที่ระบุทั้งหมดและ bootloader รองและเขียนหลักและ ตัวโหลดรองพร้อมด้วยแผนที่ใน สถานที่ที่ระบุดิสก์. ตัวโหลดหลัก ลิโล่(เรียกว่า LI) สามารถเขียนได้ทั้ง MBR และจุดเริ่มต้น ส่วนลินุกซ์.

ไฟล์ที่ง่ายที่สุด lilo.confอาจมีลักษณะเช่นนี้:

Boot=/dev/hda map=/boot/map image=/boot/vmlinuz-up root=/dev/hda1 ตัวอย่างที่ 10.1

การตั้งค่า LILO ที่ง่ายที่สุด: ตัวอย่างไฟล์ lilo.conf ลิโล่การตั้งค่านี้ กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:ตัวโหลดหลัก ถูกเขียนไว้ที่จุดเริ่มต้นของฮาร์ดไดรฟ์ตัวแรก (line boot=/dev/), เอชดีเอแผนที่ที่พัก ลิโล่คุณประโยชน์ เขียนไปยังไฟล์ /boot/map เคอร์เนลได้มาจากไฟล์ /boot/vmlinuz-up และรายการ root=/dev/hda1 บอกเคอร์เนลว่าระบบไฟล์รูท

อยู่ที่พาร์ติชั่นแรกของดิสก์แผ่นแรก เครื่องจักรเครื่องหนึ่งที่ Methodius บังเอิญใช้งานนั้นบางครั้งก็ใช้ในการสตาร์ทโปรแกรมเดียว เขียนขึ้นสำหรับ MS-DOSข้อความต้นฉบับ lilo.confโปรแกรมนี้สูญหายไปนานแล้ว ผู้เขียนก็เช่นกัน ดังนั้นฉันต้องติดตั้งทั้ง MS-DOS และ Linux บนเครื่อง ส่งผลให้

กลายเป็นเช่นนี้: # cat /etc/lilo.conf boot=/dev/hda map=/boot/map default=linux-up prompt timeout=50 image=/boot/vmlinuz-up label=linux-up root=/dev/hda5 initrd= /boot/initrd-up.img รูปภาพแบบอ่านอย่างเดียว=/boot/vmlinuz-up label=failsafe root=/dev/hda5 initrd=/boot/initrd-up.img vga=normal append=" failedsafe noapic nolapic acpi=off " อ่านอย่างเดียว other=/dev/hda1 label=dos other=/dev/fd0 label=floppy unsafe

ที่นี่ Linux ได้รับการติดตั้งบนพาร์ติชันที่ห้าของดิสก์ (หมายเลขของพาร์ติชันในคอมพิวเตอร์ที่เข้ากันได้กับ IBM จะกล่าวถึงในการบรรยายที่ 11) และ MS-DOS อยู่ที่พาร์ติชันแรก นอกเหนือจากการบูท MS-DOS แล้ว ยังมีสองตัวเลือกสำหรับการบูท Linux และอีกหนึ่งตัวเลือก - ใดก็ได้ ระบบปฏิบัติการจากฟล็อปปี้ดิสก์ ตัวเลือกการดาวน์โหลดแต่ละรายการจะมีเครื่องหมายบรรทัด label=option เมื่อเริ่มต้น ลิโล่พิมพ์ง่ายที่สุด 3 หากติดตั้งอินเทอร์เฟซแบบกราฟิก หน้าต่างก็สามารถตกแต่งได้ตามต้องการหน้าต่างที่แสดงรายการป้ายกำกับทั้งหมด (ในกรณีนี้คือ “linux-up”, “failsafe”, “dos” และ “floppy”) ผู้ใช้ใช้ลูกศรเพื่อเลือกตัวเลือกที่ต้องการแล้วกด Enter หากจำเป็น ผู้ใช้สามารถเพิ่มหลายรายการด้วยตนเองได้ พารามิเตอร์พวกมันจะถูกส่งไปยังเคอร์เนลของระบบ หากผู้ใช้ไม่ได้สัมผัสสิ่งใดๆ หลังจากหมดเวลา ป้ายกำกับที่ระบุในฟิลด์เริ่มต้นจะถูกเลือก

คำชี้แจงเพิ่มเติมเล็กน้อย ป้ายกำกับ linux-up และ failsafe ในตัวอย่างใช้เคอร์เนลเดียวกัน (vmlinuz-up) แต่ในกรณีที่สองโหมดจะได้รับการกำหนดค่าใหม่ กราฟิกการ์ดและมีการเพิ่มพารามิเตอร์ที่ปิดใช้งานการสนับสนุนส่วนขยายฮาร์ดแวร์ที่เป็นทางเลือกสำหรับการบูต (การประมวลผลหลายตัว การจัดการพลังงานอัตโนมัติ ฯลฯ) ผู้ใช้สามารถเข้าสู่บรรทัดหลังจาก append= ตัวเอง นี่คือพารามิเตอร์เคอร์เนล ฟิลด์ initrd= ระบุว่าไฟล์ใด จุดเริ่มต้นตั้งอยู่ ดิสก์เสมือน (ส่วนที่อุทิศให้กับเขา " เริ่มดิสก์เสมือนและโมดูล" ของการบรรยายครั้งนี้) และจารึกที่ค่อนข้างน่าตกใจ " ไม่ปลอดภัย" (สำหรับฉลากฟล็อปปี้ดิสก์) เพียงหมายความว่าฟล็อปปี้เป็นอุปกรณ์ที่ถอดออกได้ จึงไม่มีความหมายเมื่อเริ่มต้นระบบ ลิโล่ตรวจสอบความถูกต้อง บูตเซกเตอร์ และจัดทำแผนที่

สุดท้าย รายการเช่น other=device ระบุว่า ลิโล่ประเภทที่ไม่รู้จัก ระบบปฏิบัติการซึ่งอยู่บนอุปกรณ์นี้ ซึ่งหมายความว่าไม่สามารถโหลดเคอร์เนลได้ แต่คาดว่าในภาคแรกของเครื่องจะตรวจพบได้ อื่น กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:, ลิโล่จะโหลดและถ่ายโอนการควบคุมไปตามโซ่ นี่คือวิธีที่ MS-DOS โหลดบนเครื่องนี้: กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:ถูกนำมาใช้ (โดยป้ายกำกับ dos) จากจุดเริ่มต้นของพาร์ติชันแรกของดิสก์แรก

ด้วง

บูตระบบย่อย ด้วงมีความซับซ้อนมากขึ้น เธอยังมี กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:ซึ่งเขียนลงในเซกเตอร์แรกของดิสก์หรือพาร์ติชั่น และ ตัวโหลดรอง, ตั้งอยู่ใน ระบบไฟล์- อย่างไรก็ตาม แผนที่ที่ตั้งวี ด้วงมักใช้กับสิ่งที่เรียกว่า bootloader "หนึ่งและครึ่ง" เท่านั้น ("stage 1.5") - โดยพื้นฐานแล้วคือไดรเวอร์สำหรับตัวใดตัวหนึ่งโดยเฉพาะ ระบบไฟล์- ขั้นตอนการโหลดจะเป็นดังนี้ ตัวโหลดหลักโหลดครึ่งหนึ่งตามสิ่งที่เขียนไว้ แผนที่ที่พัก- แผนที่นี้สามารถเรียบง่ายมาก เนื่องจากโดยปกติแล้วตัวโหลดครึ่งหนึ่งจะถูกวางไว้โดยตรงหลังจากตัวโหลดหลักในหลาย ๆ เซกเตอร์ 4 เหล่านั้น. บนแทร็กศูนย์ของกระบอกสูบศูนย์โดยเริ่มจากเซกเตอร์ 2 พื้นที่ของดิสก์นี้มักไม่ได้ใช้ ระบบไฟล์(ดูการบรรยายที่ 11)ติดต่อกันหรือในสถานที่อื่นที่กำหนดเป็นพิเศษ ข้างนอก ระบบไฟล์- ตัวโหลดหนึ่งและครึ่งสามารถจดจำได้ หนึ่ง ระบบไฟล์และหาอันรองตรงนั้นแล้ว ชื่อ(ปกติคือ /boot/ ด้วง/stage2- ในที่สุด, ตัวโหลดรองโดยใช้ความสามารถครึ่งหนึ่งอ่านจากไฟล์ /boot/ ด้วง/menu.lstเมนูที่ผู้ใช้สามารถเลือกตัวเลือกการบูตได้เช่นเดียวกับใน ลิโล่- ดังนั้นการอัพเดตและการกำหนดค่าที่ติดตั้งใหม่ ด้วง ไม่ต้องการคำนวณแผนที่ตำแหน่งใหม่และเปลี่ยนแปลงสิ่งอื่นใดนอกเหนือจากไฟล์ในไดเร็กทอรี /boot/ ด้วง.

ตามคำร้องขอของ Methodius Gurevich ให้ติดตั้งบนเครื่องสองระบบ ด้วง- ในกรณีนี้ ไฟล์ /boot/ ด้วง/menu.lstมันกลายเป็นแบบนี้:

# cat /boot/grub/menu.lst ค่าเริ่มต้น 0 หมดเวลา 50 ชื่อเคอร์เนล linux-up (hd0,4)/boot/vmlinuz-up root=/dev/hda5 initrd (hd0,4)/boot/initrd-up.img ชื่อเคอร์เนลที่ล้มเหลว (hd0,4) / boot / vmlinuz-up root = / dev / hda5 ล้มเหลวในความปลอดภัย noapic nolapic acpi = off initrd (hd0,4) / boot / initrd-up.img ชื่อ ฟล็อปปี้ดิสก์รูท (fd0) chainloader +1 ชื่อ ดอสรูท (hd0,0) เชนโหลดเดอร์ +1 ตัวอย่างที่ 10.3

การตั้งค่า GRUB บนเครื่องระบบคู่ lilo.confความแตกต่างระหว่าง เฉพาะในรูปแบบไวยากรณ์และในข้อเท็จจริงนั้นด้วยฮาร์ดไดรฟ์ ด้วงและส่วนที่เกี่ยวกับพวกเขา" linux-up ").!}

ตั้งชื่อด้วยวิธีของตัวเอง ในรูปแบบ (hddisk_number, partition_number) และเริ่มนับเลขจากศูนย์ ป้ายกำกับ (" title ") ก็มีหมายเลขจากศูนย์เช่นกัน ดังนั้นค่าเริ่มต้นของรายการ 0 หมายความว่าหลังจากหมดเวลาใช้งานแล้ว การกำหนดค่าแรกสุด (ตามชื่อ ด้วงกำลังศึกษาคู่มือครับ ลิโล่เมโทเดียสค้นพบความแตกต่างที่สำคัญกว่ามากจาก ด้วง- ปรากฎว่าใน ไม่เพียงแต่พารามิเตอร์เท่านั้น แต่ยังรวมถึงไฟล์ด้วย (เคอร์เนลดิสก์เสมือนเริ่มต้น ฯลฯ) ได้รับการยอมรับและกำลังโหลด ในกระบวนการทำงาน คุณสามารถเลือกรายการเมนูแทนได้โหมดบรรทัดคำสั่ง ด้วงซึ่งดูน่าสงสัยเหมือน bash ซึ่งคุณสามารถบังคับได้ ระบบไฟล์โหลดเคอร์เนลอื่นที่ไม่ได้กำหนดไว้ในการกำหนดค่า โปรดดูที่เนื้อหาของไดเร็กทอรี ได้รับการยอมรับโดยโปรแกรมโหลดบูตครึ่งหนึ่งและแม้แต่เนื้อหาของไฟล์เหล่านี้โดยไม่คำนึงถึงสิทธิ์การเข้าถึง: ระบบยังไม่ได้โหลด ยิ่งกว่านั้นคุณสามารถกำหนดค่า bootloader ใหม่ได้ในแบบของคุณเองและเขียนลงไป ผลลัพธ์การตั้งค่า โดยไม่มีเวลาเพลิดเพลินไปกับอิสรภาพที่ไม่คาดคิด เมโทเดียสค้นพบว่าทางออกหนึ่งบรรทัดคำสั่ง

การดำเนินการเคอร์เนล Linux ระหว่างกระบวนการบู๊ต

ดังนั้นจึงเกิดขึ้นในสามขั้นตอน

  1. bootloader จาก ROM จะกำหนดว่าอุปกรณ์ใดที่สามารถบู๊ตได้และอาจแจ้งให้ผู้ใช้เลือกหนึ่งในนั้น มันดาวน์โหลดจากอุปกรณ์ที่เลือก กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:และโอนการควบคุมให้เขา
  2. ตัวโหลดหลักกำหนด (และส่วนใหญ่มักจะรู้) ว่ามันอยู่ที่ไหน ตัวโหลดรอง- ใหญ่และสวย โปรแกรมอัจฉริยะ- สำหรับเขาการทำเช่นนี้ง่ายกว่าสำหรับโปรแกรมจาก ROM: ประการแรกเพราะสำหรับแต่ละอุปกรณ์ กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:ของคุณเองและประการที่สองเนื่องจากสามารถเปลี่ยนแปลงได้ง่ายเมื่อเปลี่ยนการตั้งค่าของระบบบู๊ต ในโครงการที่นำเสนอ ลิโล่และ ด้วง, กำหนดตัวเลือกการบูตเพียงตัวเลือกเดียว:ไม่ได้เข้าร่วมการสนทนากับผู้ใช้ แต่จะโหลดรายการรองทันทีและโอนการควบคุมไปยังผู้ใช้
  3. ตัวโหลดรองฉลาดพอที่จะรู้ว่าเคอร์เนลของระบบอยู่ที่ใด (อาจมีมากกว่าหนึ่ง) ให้ผู้ใช้มีตัวเลือกการบูตหลายตัวให้เลือกและแม้แต่ในเหตุการณ์ ด้วงอนุญาตให้คุณตั้งค่าตัวเลือกการบูตของคุณเอง หน้าที่ของมันคือโหลดเคอร์เนลและทุกสิ่งที่จำเป็นในการเริ่มระบบเข้าสู่หน่วยความจำ (บางครั้งก็เป็นโมดูลบางครั้ง ไม่เพียงแต่พารามิเตอร์เท่านั้น แต่ยังรวมถึงไฟล์ด้วย (เคอร์เนล) กำหนดค่าทั้งหมดนี้และถ่ายโอนการควบคุมไปยังเคอร์เนล

เคอร์เนลเป็นทั้งสมองและหัวใจของลีนุกซ์ เคอร์เนลจะดำเนินการทั้งหมดที่ไม่สามารถมอบหมายให้กับงานย่อย (กระบวนการ) ที่แยกจากกันของระบบได้ การเข้าถึง RAM, เครือข่าย, ดิสก์ และอุปกรณ์ภายนอกอื่นๆ ได้รับการจัดการโดยเคอร์เนล เคอร์เนลเริ่มต้นและลงทะเบียนกระบวนการและจัดการการแบ่งเวลาระหว่างกระบวนการเหล่านั้น