Để thực hiện lưu lại những thông số cho lần sau dùng lại, grub2 sử dụng 1 file lưu có tên là grubenv, đặt cùng thư mục với file grub.cfg
file này dùng để lưu các biến và để dùng lại sau này.
ví dụ trong file grub.cfg thường có giá trị biến default dùng để chỉ định vị trí mặc định lựa chọn khi boot
set default=2
khi chúng ta lưu giá trị default chúng ta thực hiện lệnh sau
save_env default
giá trị này sẽ được load sau này nếu chúng ta thêm vào đầu file grub.cfg dòng lệnh sau
load_env
khi đó, giá trị default đã được lưu sẽ được tải lại, và nó chọn đúng vị trí menu mà ta đã ghi nhớ trước đó.
Trong 1 file grub.cfg có nhiều vị trí khác nhau, chúng ta không thể nào cứ đếm vị trị của menuentry rồi gán lệnh lưu được. Do đó với mỗi menuentry ta gán id cho nó, gán id thông qua lệnh --id 'tên_id'
ví dụ
menuentry "boot into winpe" --id 'winpe' {
.....
}
khi chúng ta chọn menuentry này, thì sẽ xuất hiện 1 biến gọi là chosen, được gán giá trị của id khi đó giá trị của chosen='winpe'
chúng ta gán giá trị của chosen cho default
set default=${chosen}
sau đó lưu default
save_env default
* File menentry dùng để lưu hoàn chỉnh như sau
if [ -f /boot/grub/grubenv ]; then load_env; fi
function savedefault {
set default=${chosen}
save_env default
}
#.....
menuentry "khởi động vào winpe" --id 'winpe' {
savedefault
#.....
}
menuentry "khởi động vào msdos" --id 'msdos' {
savedefault
#.....
}
menuentry "khởi động vào linux" --id 'linux' {
savedefault
#.....
}
Không có nhận xét nào:
Đăng nhận xét