grub的reboot 命令如下:其路徑在grub-core/commands/reboot.c 中
static grub_err_t __attribute__ ((noreturn))
grub_cmd_reboot (grub_command_t cmd __attribute__ ((unused)),
int argc __attribute__ ((unused)),
char **args __attribute__ ((unused)))
static grub_command_t cmd;
grub_mod_init(reboot)
grub_mod_fini(reboot)
可以看到如果在grub.cfg 中呼叫reboot 命令最終呼叫grub_cmd_reboot->grub_reboot
如果這個系統是通過uefi+grub方式啟動的話,則grub_reboot 在grub-core/lib/efi 中實現
void
grub_reboot (void)
這個函式首先呼叫grub_machine_fini
enum
;這裡的grub_loader_flag_noreturn為1
void
grub_machine_fini (int flags)
在grub_machine_fini 中if 條件不成立,所以會呼叫grub_efi_fini
void
grub_efi_fini (void)
來釋放disk和console
回到grub_reboot 中,釋放disk和console占用的資源後,就通過efi_call_4呼叫runtime_services來reboot的系統
每天回顧linux命令(reboot)
reboot命令用來重新啟動正在執行的linux作業系統 語法 reboot 選項 選項 d 重新開機時不把資料寫入記錄檔案 var tmp wtmp。本引數具有 n 參效果。f 強制重新開機,不呼叫shutdown指令的功能。i 在重新開機前,先關閉所有的網路介面。n 重新開機前不檢查是否有未結束...
Linux之重啟reboot命令
reboot 用來重啟linux系統和windows系統中的restart一樣。但是機器重啟必須要root使用者才有許可權。命令語法 sbin reboot n w d f i 或reboot n w d f i 命令引數 引數長引數 描敘 d 重新啟動時不把資料寫入記錄檔案 var tmp wtm...
AIX系統謹慎使用reboot命令
在客戶一次停機維護中,發現了這個問題。環境是oracle 10g rac for aix6,使用了hacmp管理共享磁碟。在停機維護時間段內需要重啟主機,當關閉了資料庫和cluster後,節點1使用reboot命令重啟作業系統,等了很長時間,系統仍然沒有啟動的跡象,不得以到機房中檢查,發現伺服器處於...