如何在 grub 中鎖定特定的作業系統
我目前正在雙啟動我的一台筆記型電腦,但我希望 Linux 發行版實際上完全隱藏。到目前為止,我已經做到了,所以你必須按 Shift 才能顯示 grub 菜單,並且我已經加密了我的 Linux 根分區(我沒有主分區)。我聽說您可以為特定作業系統分配密碼,但我對如何做到這一點有點困惑。
我可以讓 Windows 不需要登錄嗎?
如何使只有我的 Linux 作業系統受密碼保護?
(注意:我使用的是帶有 Zorin OS 15 Core 的 Windows 10)
編輯:我不是在談論 windows 登錄,我的意思是,我可以擁有它,那麼 grub 不需要我登錄來訪問 windows(在 grub 菜單中),但我仍然需要登錄 grub 來訪問佐林。此外,我試圖阻止進入我的 Zorin 根分區的人並不是特別聰明,所以我真的不在乎他們是否可以使用實時 USB 或其他東西進入它。
設置超級使用者和密碼將限制任何其他使用者使用菜單條目、編輯菜單條目和使用 grub 控制台。添加
--unrestricted
到 amenuentry
允許任何使用者在不輸入使用者名/密碼的情況下使用該菜單條目,並添加--users
使用者名列表允許其他使用者訪問 amenuentry
。對於最低限度的設置,您需要添加一個帶有密碼的超級使用者並添加
--unrestricted
到生成 Windows 菜單條目的menuentry
in中。/etc/grub.d/30_os_prober
- 編輯
/etc/grub.d/30_os-prober
,找到menuentry
負責 Windows 條目並添加--unrestricted
到此菜單條目。就我而言,我搜尋了字元串Windows
並編輯了下一menuentry
行。編輯後的塊現在看起來像這樣:cat << EOF menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --unrestricted $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' { EOF
- 將您的密碼添加到末尾
/etc/grub.d/30_os-prober
:cat << EOF set superusers="freddy" password freddy 1234 EOF
/etc/grub.d/
請注意,我們將哪個配置文件用於我們的密碼並不重要。我們也可以使用00_header
or10_linux
代替。如果你想加密你的密碼,執行
grub-mkpasswd-pbkdf2
,輸入你的密碼兩次,然後使用生成的字元串grub.pbkdf2.sha512.10000.<a_very_long_string>
作為你的密碼。然後密碼條目必須以password_pbkdf2
而不是開頭password
:password_pbkdf2 freddy grub.pbkdf2.sha512.10000.68B90AFC[...]86858AF939
- 跑
sudo update-grub
更新 grub 並檢查您生成的 Windows 條目
/boot/grub/grub.cfg
是否具有--restricted
標誌。生成的30_os-prober
-block 應該類似於:### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows 10 (on /dev/sda1)' --unrestricted --class windows --class os $menuentry_id_option 'osprober-chain-A25E43975E436361' { insmod part_msdos insmod ntfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 A25E43975E436361 else search --no-floppy --fs-uuid --set=root A25E43975E436361 fi parttool ${root} hidden- drivemap -s (hd0) ${root} chainloader +1 } set superusers="freddy" password freddy 1234 ### END /etc/grub.d/30_os-prober ###
- 重新啟動並測試。
相關連結:
- GRUB 中的身份驗證和授權(GRUB 手冊)
- Grub2/Passwords(帶有範例的 Ubuntu 文件)