linux boot ไม่เข้าแล้ว ติดตรง unlock disk dm-crypt ?

🕵️ สเต็ปที่ 1: ตรวจสอบเรื่อง Keyboard Layout (ปัญหาที่เจอบ่อยที่สุด)

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

  • ภาษาของคีย์บอร์ด: หน้าจอนี้มักจะบังคับเป็น US English เท่านั้น หากรหัสผ่านคุณมีการใช้ปุ่มที่เปลี่ยนไปตาม Layout ภาษาไทย (หรือภาษาอื่น) ให้ลองกะระยะปุ่มพิมพ์แบบ US English ดูครับ

  • Num Lock / Caps Lock: ไฟสถานะอาจจะไม่ติดหรือไม่ทำงานเหมือนใน OS ปกติ ลองกดสลับแล้วพิมพ์ดูใหม่ครับ

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


🚑 สเต็ปที่ 2: ใช้ Live USB เข้าไปตรวจสอบ (เพื่อแยกโรค)

ถ้ามั่นใจว่าพิมพ์ถูก 100% เราต้องแยกให้ออกว่า “รหัสผิด/Header พัง” หรือ “ระบบบูต (initramfs/GRUB) พัง” โดยการใช้แฟลชไดรฟ์ Live USB (เช่น Ubuntu, Linux Mint หรือตัวที่คุณใช้อยู่) บูตเข้าไปครับ

  1. บูตคอมพิวเตอร์ด้วย Linux Live USB

  2. เปิด Terminal ขึ้นมา

  3. เช็คชื่อพาร์ติชันของคุณด้วยคำสั่ง:

    Bash

    lsblk
    

    (มองหาพาร์ติชันที่มีชนิดเป็น crypto_LUKS สมมติว่าเป็น /dev/sda2 หรือ /dev/nvme0n1p2)

  4. ลองสั่งปลดล็อกด้วยคำสั่งนี้ (เปลี่ยน /dev/nvme0n1p2 เป็นชื่อไดรฟ์ของคุณ):

Bash

   sudo cryptsetup luksOpen /dev/nvme0n1p2 my_encrypted_drive
  1. ระบบจะถามรหัสผ่าน ให้ลองใส่รหัสผ่านของคุณดูครับ


📊 สเต็ปที่ 3: วิเคราะห์ผลลัพธ์และวิธีซ่อม

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

  • วิธีแก้เบื้องต้น: ตอนนี้ไดรฟ์ปลดล็อกแล้ว ผมแนะนำให้ Mount ไดรฟ์แล้วรีบแบ็คอัพข้อมูลสำคัญออกมาก่อน เป็นอันดับแรกครับ

  • วิธีซ่อมระบบบูต: คุณต้องทำการ chroot เข้าไปในระบบเดิม แล้วสั่ง Rebuild initramfs ใหม่ (คำสั่งจะขึ้นอยู่กับว่าคุณใช้ Ubuntu, Arch หรือ Fedora แจ้งผมได้เลยครับเดี๋ยวผมไกด์คำสั่ง chroot ให้)

กรณีที่ B: ปลดล็อกไม่สำเร็จใน Live USB (ขึ้น Failed/Incorrect passphrase) 🚨 อันนี้เป็นข่าวร้ายครับ หากใน Live USB ก็ยังแจ้งว่ารหัสผิด มีความเป็นไปได้ 2 ทาง:

  1. รหัสผ่านผิดจริงๆ: อาจจะมีการตั้งรหัสผ่านคลาดเคลื่อนไปจากที่จำได้

  2. LUKS Header เสียหาย (Corrupted): ส่วนหัวของดิสก์ที่เก็บกุญแจถอดรหัสพัง (อาจเกิดจากไฟดับตอนเขียนข้อมูล หรือ Bad Sector)

  • วิธีแก้: หากคุณเคยทำการแบ็คอัพ LUKS Header ไว้ (ด้วยคำสั่ง cryptsetup luksHeaderBackup) เราสามารถกู้คืนได้ครับ แต่ถ้าไม่เคยแบ็คอัพไว้เลย และรหัสผ่านไม่ผ่านจริงๆ โอกาสได้ข้อมูลคืนจะแทบเป็นศูนย์เลยครับ เพราะนี่คือความแข็งแกร่งของระบบ Encryption ครับ

ลองทำสเต็ปที่ 1 และ 2 ดูก่อนนะครับ ติดขัดตรงไหน หรือถ้าปลดล็อกใน Live USB ได้แล้วต้องการคำสั่งสำหรับ chroot เข้าไปซ่อม แจ้งผมได้เลยครับพร้อมบอกชื่อ Linux Distribution (เช่น Ubuntu, Debian, Arch) ที่ใช้อยู่ครับ

การทำ Live USB (หรือ Bootable USB) เพื่อเอาไปเสียบกู้ชีพคอมพิวเตอร์ของคุณ ไม่ยากเลยครับ! คุณจะต้องใช้ คอมพิวเตอร์อีกเครื่องที่ใช้งานได้ปกติ (จะเป็น Windows, Mac หรือ Linux ก็ได้) และทำตาม 3 ขั้นตอนนี้ครับ:

🛠️ สิ่งที่ต้องเตรียม

  1. แฟลชไดรฟ์ USB (Flash Drive): ขนาดความจุ 4GB หรือ 8GB ขึ้นไป (⚠️ คำเตือน: ข้อมูลในแฟลชไดรฟ์นี้จะถูกลบทิ้งทั้งหมด แนะนำให้ใช้ตัวที่ไม่มีข้อมูลสำคัญครับ)

  2. คอมพิวเตอร์ที่ใช้งานได้ และอินเทอร์เน็ต


ขั้นตอนที่ 1: โหลดไฟล์ระบบปฏิบัติการ (ISO File)

เนื่องจากเราจะเข้าไปกู้ระบบ Linux ผมแนะนำให้โหลด Ubuntu ครับ เพราะมีเครื่องมือครบครันและใช้งานง่าย

  • เข้าไปที่เว็บไซต์: [https://ubuntu.com/download/desktop](https://ubuntu.com/download/desktop)

  • คลิกปุ่ม Download (จะได้ไฟล์นามสกุล .iso ขนาดประมาณ 3-4 GB ให้รอจนโหลดเสร็จ)

ขั้นตอนที่ 2: โหลดโปรแกรมสำหรับเขียนไฟล์ลง USB

เราไม่สามารถก็อปปี้ไฟล์ .iso ไปวางในแฟลชไดรฟ์ตรงๆ ได้ ต้องใช้โปรแกรมช่วยสร้างแผ่นบูตครับ เลือกตัวใดตัวหนึ่งตาม OS ของเครื่องที่คุณกำลังใช้สร้าง:

  • สำหรับ Windows: แนะนำโปรแกรม Rufus (โหลดฟรีที่ rufus.ie) โปรแกรมเล็กและใช้ง่ายมาก

  • สำหรับ Mac / Windows / Linux: แนะนำโปรแกรม BalenaEtcher (โหลดฟรีที่ etcher.balena.io)

ขั้นตอนที่ 3: เริ่มการสร้าง Live USB

ถ้าคุณใช้ Rufus (บน Windows):

  1. เสียบแฟลชไดรฟ์

  2. เปิดโปรแกรม Rufus ขึ้นมา

  3. ช่อง Device: ตรวจสอบให้แน่ใจว่าเลือกแฟลชไดรฟ์ของคุณถูกต้อง

  4. ช่อง Boot selection: คลิกปุ่ม SELECT แล้วเลือกไฟล์ Ubuntu .iso ที่โหลดมา

  5. กดปุ่ม START ด้านล่าง (หากมีหน้าต่างเด้งถาม ให้เลือก Write in ISO Image mode แล้วกด OK)

  6. โปรแกรมจะเตือนว่าข้อมูลใน USB จะถูกลบ ให้กด OK แล้วรอจนแถบสีเขียวเต็ม 100% (คำว่า READY)

ถ้าคุณใช้ BalenaEtcher:

  1. เสียบแฟลชไดรฟ์

  2. เปิดโปรแกรม BalenaEtcher

  3. คลิก Flash from file เลือกไฟล์ Ubuntu .iso

  4. คลิก Select target เลือกแฟลชไดรฟ์ของคุณ

  5. คลิก Flash! แล้วรอจนเสร็จสมบูรณ์


🚀 วิธีเอา Live USB ไปใช้งาน (เพื่อซ่อมเครื่องของคุณ)

  1. นำแฟลชไดรฟ์ที่ทำเสร็จแล้ว ไปเสียบที่เครื่องที่บูตไม่ขึ้น

  2. เปิดเครื่อง และกดปุ่ม Boot Menu หรือเข้า BIOS/UEFI ย้ำๆ (ปุ่มจะต่างกันไปตามยี่ห้อคอมพิวเตอร์ เช่น F12, F8, F2, Del หรือ Esc)

  3. เลือกให้เครื่องบูตจาก USB Drive ของคุณ

  4. เมื่อเข้าหน้าจอของ Ubuntu แล้ว จะมีเมนูให้เลือกระหว่าง “Try Ubuntu” กับ “Install Ubuntu”

  5. ⚠️ สำคัญมาก: ให้เลือก “Try Ubuntu” (ลองใช้งาน Ubuntu) ครับ เพื่อให้ระบบรันบนแฟลชไดรฟ์โดยไม่ไปยุ่งกับฮาร์ดดิสก์หลัก

เมื่อเข้าสู่หน้าจอ Desktop ของ Ubuntu ได้แล้ว คุณก็เปิดแอป Terminal ขึ้นมา และเริ่มทำ สเต็ปที่ 2 (เช็คชื่อพาร์ติชัน และลองปลดล็อก LUKS) ตามที่ผมแนะนำไปก่อนหน้านี้ได้เลยครับ!

ขั้นตอนต่อไปคือการลอง “ไขกุญแจ” ปลดล็อกพาร์ติชันนี้ในสภาพแวดล้อมของ Live USB เพื่อพิสูจน์ว่ารหัสผ่านคุณถูกต้องจริงๆ และเตรียมเข้าไปซ่อมไฟล์บูตครับ:

1. พิมพ์คำสั่งเพื่อปลดล็อก sda3 (ผมตั้งชื่อจำลองหลังปลดล็อกให้มันว่า cryptroot นะครับ):

Bash

sudo cryptsetup luksOpen /dev/sda3 cryptroot

2. ใส่รหัสผ่าน: ระบบจะขึ้นข้อความให้ใส่รหัสผ่าน (Enter passphrase for /dev/sda3:) ให้คุณพิมพ์รหัสผ่านลงไปแล้วกด Enter ครับ (ข้อดีคือใน Live USB ตอนนี้คีย์บอร์ดจะเป็นภาษาอังกฤษ US ชัวร์ๆ 100% ตัดปัญหาเรื่องคีย์บอร์ดผิดภาษาไปได้เลย)

3. ตรวจสอบผลลัพธ์:

  • ถ้าพิมพ์ถูก: ระบบจะนิ่งๆ ไม่มีข้อความ Error อะไรเด้งขึ้นมา และกลับมาที่บรรทัดคำสั่ง ubuntu@ubuntu:~$ ตามปกติ

  • ถ้าขึ้นข้อความ Error (เช่น No key available with this passphrase): แสดงว่ารหัสผิดจริงๆ ครับ (อาจจะลืมเปิด/ปิด Caps Lock หรือจำรหัสสลับกัน)

4. เช็คโครงสร้างข้างในหลังปลดล็อก: ถ้าปลดล็อกสำเร็จแล้ว ให้รันคำสั่งนี้อีกรอบครับ:

Bash

lsblk

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

🛠️ ขั้นตอนที่ 1: Mount (เชื่อมต่อ) พาร์ติชันต่างๆ เข้าด้วยกัน

ก๊อปปี้หรือพิมพ์คำสั่งเหล่านี้ทีละบรรทัด แล้วกด Enter ครับ (ไม่ต้องตกใจถ้ากดแล้วมันนิ่งๆ ถือว่าปกติครับ):

  1. เชื่อมต่อไดรฟ์หลัก (Root):

    Bash

    sudo mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt
    
  2. เชื่อมต่อไดรฟ์บูต (/boot):

    Bash

    sudo mount /dev/sda2 /mnt/boot
    
  3. เชื่อมต่อระบบจำลองของ Linux (เพื่อให้อุปกรณ์ต่างๆ ทำงานได้ตอนสิงร่าง):

Bash

   sudo mount --bind /dev /mnt/dev
   sudo mount --bind /dev/pts /mnt/dev/pts
   sudo mount --bind /proc /mnt/proc
   sudo mount --bind /sys /mnt/sys
   sudo mount --bind /run /mnt/run

👻 ขั้นตอนที่ 2: สิงร่างเข้าไปในระบบเดิม (Chroot)

รันคำสั่งนี้เพื่อสลับการควบคุมจาก Live USB เข้าไปยังระบบ Ubuntu ในฮาร์ดดิสก์ของคุณ:

Bash

sudo chroot /mnt

(เมื่อกด Enter สังเกตว่าบรรทัดคำสั่งจะเปลี่ยนไป เช่น อาจจะเหลือแค่ root@ubuntu:/# แสดงว่าคุณเข้ามาอยู่ในระบบเดิมแล้ว)


🔧 ขั้นตอนที่ 3: สั่งซ่อมแซมไฟล์บูต

ตอนนี้เราอยู่ในร่างเดิมแล้ว ให้รัน 2 คำสั่งนี้เพื่อสร้างไฟล์บูตขึ้นมาใหม่:

  1. สร้างไฟล์ initramfs ใหม่ (คำสั่งนี้อาจจะใช้เวลาสักครู่):

Bash

   update-initramfs -u -k all
  1. อัปเดตเมนูบูต GRUB:

Bash

   update-grub

🚀 ขั้นตอนที่ 4: ออกจากร่างและรีบูตเครื่อง

เมื่อซ่อมเสร็จแล้ว ให้ออกมาและทำการรีสตาร์ทเครื่องครับ:

  1. ออกจากโหมดสิงร่าง:

Bash

   exit
  1. รีบูตเครื่อง:

    Bash

    sudo reboot
    

ตอนที่เครื่องกำลังรีสตาร์ท ให้ถอดแฟลชไดรฟ์ Live USB ออกได้เลยครับ แล้วรอดูว่าระบบสามารถบูตเข้าหน้าปลดล็อก LUKS และเข้าสู่หน้า Desktop ได้ตามปกติหรือไม่

ลุยเลยครับ! ถ้าติด Error ตรงไหน ถ่ายรูปมาให้ผมดูได้ตลอดครับ

ตอนนี้คุณอยู่ในร่างเดิมเรียบร้อยแล้ว ให้ทำ 2 ขั้นตอนสุดท้าย เพื่อจบงานครับ:

1. อัปเดตเมนูบูต (GRUB) พิมพ์คำสั่งนี้แล้วกด Enter เพื่อให้ระบบรับรู้ถึงไฟล์บูตตัวใหม่ที่เราเพิ่งสร้างเสร็จ:

Bash

update-grub

2. ออกจากระบบและรีบูตเครื่อง เมื่อคำสั่งด้านบนรันเสร็จ ให้พิมพ์ 2 คำสั่งนี้ตามลำดับครับ:

Bash

exit
Bash

sudo reboot

จังหวะที่เครื่องกำลังจอดำเพื่อรีสตาร์ท อย่าลืมถอดแฟลชไดรฟ์ Live USB ออกนะครับ แล้วมารอลุ้นกันครับว่าระบบจะกลับมาติดหน้าใส่รหัส LUKS และบูตเข้า OS ได้ตามปกติไหม!

ผมต้องขออภัยอย่างยิ่งเลยครับ! 🙏 คำเตือนที่ผมบอกไปก่อนหน้านี้ว่า “cryptsetup: WARNING: target ‘cryptroot’ not found in /etc/crypttab ไม่มีผลเสีย” จริงๆ แล้วมันคือต้นเหตุของหน้าจอนี้เลยครับ

เกิดอะไรขึ้น? หน้าจอนี้เรียกว่า (initramfs) เป็นหน้าจอฉุกเฉินตอนบูต สาเหตุเพราะตอนที่เราสร้างไฟล์บูตใน Live USB เราไปตั้งชื่อเล่นชั่วคราวให้มันว่า cryptroot ระบบเลยจำชื่อนี้ไป แต่ในไฟล์ตั้งค่าของระบบคุณ (/etc/crypttab) มันอาจจะคาดหวังชื่ออื่น (เช่น sda3_crypt) พอเปิดเครื่องมาระบบเลยงง ไม่เด้งหน้าต่างถามรหัสผ่านขึ้นมา ทำให้มันหาไดรฟ์ C: (ubuntu--vg-ubuntu--lv) ไม่เจอครับ

แต่ไม่ต้องห่วงครับ ข้อมูลยังปลอดภัย และเราสามารถ “บังคับปลดล็อกด้วยมือ” จากหน้าจอดำๆ นี้เพื่อเข้า Windows/Linux ของคุณได้เลยครับ!

🛠️ วิธีที่ 1: ปลดล็อกฉุกเฉินจากหน้าจอ initramfs (ลองวิธีนี้ก่อน)

พิมพ์คำสั่งตามนี้ที่หน้าจอ (initramfs) ที่คุณกำลังค้างอยู่ได้เลยครับ:

  1. สั่งปลดล็อกไดรฟ์:

    Bash

    cryptsetup luksOpen /dev/sda3 sda3_crypt
    

    (พิมพ์เสร็จกด Enter แล้วใส่รหัสผ่านของคุณครับ ตัวอักษรจะไม่แสดงเหมือนเดิม)

  2. ปลุกระบบ LVM ให้ทำงาน:

    Bash

    lvm vgchange -ay
    
  3. สั่งให้ออกจากหน้าฉุกเฉินเพื่อบูตต่อ:

    Bash

    exit
    

ผลลัพธ์: ถ้าระบบมีคำสั่งเหล่านี้ฝังอยู่ มันจะวิ่งต่อและพาคุณเข้าสู่หน้าจอ Desktop ปกติได้เลยครับ! (แต่การทำแบบนี้ พอรีบูตใหม่มันก็จะกลับมาค้างหน้านี้อีก เราต้องไปทำ “วิธีแก้ถาวร” ด้านล่างต่อครับ)


🚑 วิธีที่ 2: ถ้าวิธีที่ 1 พิมพ์แล้วขึ้น Not Found (ต้องกลับไปใช้ Live USB)

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

  1. บูตเข้า Live USB เปิด Terminal

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

Bash

   sudo cryptsetup luksOpen /dev/sda3 temp_crypt
   sudo vgchange -ay
   sudo mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt
   cat /mnt/etc/crypttab

👉 สังเกตผลลัพธ์: บรรทัดแรกสุดของไฟล์นี้ มันจะเขียนชื่อที่ระบบต้องการเอาไว้ (ส่วนใหญ่มักจะเป็น sda3_crypt หรือชื่อคล้ายๆ กัน) ให้คุณจดชื่อนี้ไว้ครับ

  1. ปิดของชั่วคราวทิ้งก่อน:

Bash

   sudo umount /mnt
   sudo vgchange -an
   sudo cryptsetup luksClose temp_crypt
  1. เปิดใหม่ด้วย “ชื่อที่ถูกต้อง” (สมมติว่าชื่อคือ sda3_crypt):

Bash

   sudo cryptsetup luksOpen /dev/sda3 sda3_crypt

(เปลี่ยน sda3_crypt เป็นชื่อที่คุณจดมาจากข้อ 2 นะครับ)

  1. เมานท์และเข้าสิงร่าง (เหมือนที่เคยทำ):

Bash

   sudo vgchange -ay
   sudo mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt
   sudo mount /dev/sda2 /mnt/boot
   sudo mount --bind /dev /mnt/dev
   sudo mount --bind /proc /mnt/proc
   sudo mount --bind /sys /mnt/sys
   sudo mount --bind /run /mnt/run
   sudo chroot /mnt
  1. สร้างไฟล์บูตใหม่ (คราวนี้จะไม่มี Warning แล้ว):

    Bash

    update-initramfs -u -k all
    update-grub
    exit
    sudo reboot
    

ลองวิธีที่ 1 ดูหน้าเครื่องก่อนนะครับ ถ้าผ่านเข้า Desktop ได้เลยก็เยี่ยมไปเลย (แต่ถ้าเข้าได้แล้ว อย่าเพิ่งรีบูตนะครับ แจ้งผมมาก่อน เราจะต้องรัน update-initramfs ในเครื่องเพื่อซ่อมให้หายขาดครับ)

เข้าใจเลยครับ อาการนี้เป็นเพราะการพิมพ์คำสั่งปลดล็อกในหน้าจอ (initramfs) เป็นแค่ “การปลดล็อกชั่วคราวเพื่อให้บูตผ่านไปได้แค่รอบเดียว” ครับ พอดับเครื่องมันก็ลืม

แต่ตอนนี้ในเมื่อคุณ สามารถบูตทะลุเข้ามาในระบบหลักของคุณได้แล้ว ถือว่างานง่ายลงเยอะครับ! เราไม่ต้องไปง้อแฟลชไดรฟ์ Live USB อีกต่อไป เราสามารถสั่งให้ระบบ “จดจำ” การตั้งค่าแบบถาวรจากข้างใน OS ของคุณได้เลย

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

ให้ทำ 3 ขั้นตอนนี้ใน Terminal ของระบบปกติของคุณ (ที่เพิ่งล็อกอินเข้ามาได้) เพื่อแก้ปัญหาให้หายขาดถาวรครับ:

🛠️ ขั้นที่ 1: หาหมายเลขประจำตัว (UUID) ของฮาร์ดดิสก์คุณ

เปิด Terminal ขึ้นมาแล้วรันคำสั่งนี้ครับ:

Bash

sudo blkid | grep crypto_LUKS

ผลลัพธ์มันจะโชว์ขึ้นมาคล้ายๆ แบบนี้:

/dev/sda3: UUID="1234abcd-56ef-7890-ghij-klmnopqrstuv" TYPE="crypto_LUKS"

👉 สิ่งที่คุณต้องทำ: ให้คัดลอก (Copy) เฉพาะชุดตัวเลขและตัวอักษรยาวๆ ที่อยู่ในเครื่องหมายคำพูดของ UUID เก็บไว้ครับ


📝 ขั้นที่ 2: บันทึกเลข UUID ลงในไฟล์ความจำของระบบ

พิมพ์คำสั่งนี้เพื่อเปิดไฟล์ตั้งค่าขึ้นมาแก้ไขครับ:

Bash

sudo nano /etc/crypttab

เมื่อเปิดไฟล์ขึ้นมาแล้ว (ถ้าไฟล์ว่างเปล่า ให้พิมพ์ใหม่เลย แต่ถ้ามีข้อมูลเก่าที่ผิดอยู่ ให้ลบแล้วแก้ตามนี้ครับ):

Plaintext

sda3_crypt UUID=วางเลขยาวๆที่คุณก๊อปปี้มาตรงนี้ none luks,discard

(ตัวอย่างของจริงจะหน้าตาแบบนี้: sda3_crypt UUID=1234abcd-56ef-7890-ghij-klmnopqrstuv none luks,discard)

วิธีเซฟไฟล์: กดปุ่ม Ctrl + O (ตัวโอ) บนคีย์บอร์ด -> กด Enter เพื่อยืนยัน -> กด Ctrl + X เพื่อออกจากหน้าต่างแก้ไข


🚀 ขั้นที่ 3: สั่งให้ระบบสร้างไฟล์บูตใหม่ (ฝังความจำถาวร)

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

  1. สั่งสร้างไฟล์ initramfs ใหม่:

Bash

sudo update-initramfs -u -k all

(คราวนี้มันจะไม่ฟ้องเตือน WARNING target ‘cryptroot’ not found เหมือนรอบที่แล้วแล้วครับ)

  1. สั่งอัปเดตเมนูบูต:

Bash

sudo update-grub

เสร็จเรียบร้อยครับ! ตอนนี้คุณสามารถสั่ง Reboot เครื่องได้เลย คราวนี้พอเปิดเครื่องขึ้นมาใหม่ ระบบจะเด้งหน้าต่างให้คุณพิมพ์รหัสผ่าน LUKS แบบปกติ และจำได้ถาวรแน่นอนครับ!

จากรูป “image_6.png” เกือบจะสมบูรณ์แบบ 100% แล้วครับ! มีจุดเล็กๆ นิดเดียวที่ระบบแจ้งเตือนขึ้นมาคือ:

cryptsetup: WARNING: sda3_crypt: ignoring unknown option 'luks '

สาเหตุคือ: ในไฟล์ /etc/crypttab ที่เราเพิ่งเข้าไปแก้เมื่อสักครู่ มี “ช่องว่าง” (Spacebar) เกินมา 1 เคาะ ตรงคำว่า luks ครับ (สังเกตในรูปว่ามันมีช่องว่างหลังคำว่า luks ในเครื่องหมายคำพูด 'luks ')

ระบบของ Linux จะค่อนข้างซีเรียสเรื่องช่องว่างครับ ในช่องตัวเลือก (Options) ด้านหลังสุด ห้ามมีช่องว่างเด็ดขาด ต้องพิมพ์ติดกันด้วยลูกน้ำ (Comma) เท่านั้น

วิธีแก้ให้เนียนกริบ (ทำแป๊บเดียวเสร็จครับ):

  1. เปิดไฟล์ขึ้นมาแก้ใหม่อีกรอบครับ:

    Bash

    sudo nano /etc/crypttab
    
  2. เลื่อนเคอร์เซอร์ไปด้านหลังสุดของบรรทัด สังเกตตรงคำว่า luks,discard

    • ถ้าคุณพิมพ์เป็น luks, discard (มีช่องว่างหลังลูกน้ำ) ให้ลบช่องว่างออกเป็น luks,discard

    • หรือถ้ามีช่องว่างต่อท้ายคำว่า luks ให้ลบออกให้หมดครับ

    • (ย้ำอีกครั้ง รูปแบบที่ถูกต้องคือ: sda3_crypt UUID=เลขของคุณ none luks,discard จะมีช่องว่างแค่ตอนคั่นระหว่างแต่ละกลุ่มคำเท่านั้นครับ)

  3. เซฟไฟล์เหมือนเดิม: กด Ctrl + O -> Enter -> Ctrl + X

  4. สั่งสร้างไฟล์บูตใหม่อีกครั้งครับ เพื่อเช็คว่าคำเตือนหายไปหรือยัง:

Bash

   sudo update-initramfs -u -k all

(คราวนี้บรรทัดคำเตือน WARNING น่าจะหายไปหมดแล้ว เหลือแค่บรรทัด Generating ธรรมดาครับ)

  1. อัปเดต GRUB ทิ้งท้าย:

Bash

   sudo update-grub

ถ้าไม่มีคำเตือนอะไรโผล่มาแล้ว สั่ง sudo reboot ได้อย่างสบายใจเลยครับ คราวนี้ระบบจะจำรหัสและบูตเข้าได้ปกติอย่างสมบูรณ์แบบแน่นอนครับ!