今天遇到了一個比較尷尬的事情,我centos 7.0的虛擬機密碼忘了.....里面還有我配置好的環境呢。於是我就上網上搜索各種方法,最后經我驗證下面這個方法比較靠譜:
使用光盤修復Centos: http://www.tuicool.com/articles/MJr2UzN
下面這個方法在重啟之后發生了錯誤,可能我開啟了syslinux,可以參考一下:
centOs7 忘記root密碼:http://blog.csdn.net/niu_hao/article/details/52882895
================================================================
以上的記錄是為了備忘一下,防止自己重復造輪子,下面說一下我在整個過程中總結的東西。
第一, grub
網上搜索的方法大致相同:
通過e鍵開啟引導腳本的編輯界面-->修改腳本開啟單用戶模式-->單用戶模式下使用passwd進行修改
ps: passwd修改時可能會報錯(passwd token manipulation error),這個是因為權限不足導致的,把 / 目錄用讀寫權限重新掛載就可以了。
那么這個grub到底是什么?
GNU Grand Unified Boot Loader(簡稱“GRUB”)它是一個多重操作系統啟動管理器。用來引導不同系統,如windows,linux。GRUB是多啟動規范的實現,它允許用戶可以在計算機內同時擁有多個操作系統,並在計算機啟動時選擇希望運行的操作系統。GRUB可用於選擇操作系統分區上的不同內核,也可用於向這些內核傳遞啟動參數。GNU GRUB的前身為Grand Unified Bootloader。它主要用於類Unix系統;同大多Linux發行版一樣,GNU系統也采用GNU GRUB作為它的啟動器。Solaris從10 1/06版開始在x86系統上也采用GNU GRUB作為啟動器。
這是從bing網典上copy過來的,grub支持腳本和命令行兩種模式,曾經我把我的雙系統(win7+ubuntu16.04)搞崩了,就是靠grub的命令行救過來的。在grub里面你可以設置boot分區所在的物理位置,也可以設置引導腳本所在的路徑(不熟悉的同志在修改引導腳本前一定要備份),這些文件基本都在boot分區下面。
在安裝linux系統的過程中一般會有多分區的提示,其中/boot是一個很重要的分區,里面包含着系統啟動引導過程中需要的文件以及linux內核文件,網上大多數建議是分配給/boot 100M的空間,但是我想說這不夠!如果你的硬盤空間足溝充裕的話盡量給boot分區多一點空間,以免以后你經常面臨boot空間不足引發的問題。
有喜歡深究的朋友就會問,grub加載的系統,那誰加載的grub?
這就會引出一個叫做MBR的概念:
主引導記錄(MBR,Main Boot Record)是位於磁盤最前邊的一段引導(Loader)代碼。它負責磁盤操作系統(DOS)對磁盤進行讀寫時分區合法性的判別、分區引導信息的定位,它由磁盤操作系統(DOS)在對硬盤進行初始化時產生的。
通常,我們將包含MBR引導代碼的扇區稱為主引導扇區。因這一扇區中,引導代碼占有絕大部分的空間,故而將習慣將該扇區稱為MBR扇區(簡稱MBR)。由於這一扇區承擔有不同於磁盤上其他普通存儲空間的特殊管理職能,作為管理整個磁盤空間的一個特殊空間,它不屬於磁盤上的任何分區,因而分區空間內的格式化命令不能清除主引導記錄的任何信息。
grub就被包含在MBR里面,而MBR則是由BIOS進行加載的,簡單的來講一個linux系統啟動過程是這樣的:
【0】按電源鍵啟動
【1】BIOS啟動,進行開機自檢
【2】加載MBR,運行主引導代碼段
【3】進入grub界面選擇加載的內核(也有其他的啟動引導程序如lilo)
【4】grub從boot分區加載系統內核和引導所需文件,引導啟動系統,進入linux
那么bios又是怎么啟動的呢?它是固化在一個芯片上的,不同廠商的bios都是不同的。
注意:/boot和主引導分區不要混淆,主引導分區是無需分配的,它在硬盤上有固定的位置和大小(512M,0x0000~0x01FF).
參考網址:Linux系統管理之GRUB引導 http://www.2cto.com/os/201202/120395.html
MBR http://www.cnblogs.com/lifeinsmile/p/4245261.html
Linux startup process https://en.wikipedia.org/wiki/Linux_startup_process
第二,單用戶模式
單用戶模式類似於windows系統下的安全模式,在該模式下系統並未完全加載。單用戶模式下只允許一個任務在執行,所有的操作默認是root權限而且不需要密碼!!!what fuck?不需要密碼還有root權限,如果別人在我的電腦里進入了單用戶模式豈不是可以胡作非為了?
一下是轉載的一些單用戶模式注意的問題:
由於單用戶對系統有完全的控制權限,如果操作不當或被他人進入,那么后果將不堪設想,如何防止入行單用戶了,有以下幾個注意的方面。
1、對/etc/inittab文件進行保護,如果把id:3:initdefault中的3改為成1,就可以每次啟動直接進入到單用戶方式。對/etc/inittab文件,以root身份進入通過chown700 /etc/inittab把屬性設為其它用戶不能修改就行了。
2、如果是使用的lilo方式進行引導,可能通過Linuxconf或直接修改lilo.conf把引導時等待輸入時間設置為0或最短時行。這種情況下,如果進入單用戶方式,可以用軟盤進行引導。
3、如果使用是GRUB方式進行引導,最簡單的方法是使用GRUB密碼,對啟動選項進行保護。
4、為了防止他人遠程進行破壞,使系統重啟,除了對ROOT的密碼和/etc目錄下的文件進行有效管理之外,還應當對CMOS進行密碼設置,這樣即使把系統改成單用戶方式了,也無法直接的啟動計算機進行操作。
參考網址: Linux的單用戶模式 http://www.cnblogs.com/comeonbaby/p/5276096.html
什么是單用戶模式 http://www.jb51.net/os/RedHat/1215.html