系統啟動方面實驗及感想

2021-09-21 05:10:58 字數 2581 閱讀 1306

這個問題再簡單不過了,在登陸選定核心介面按e進入grub的編輯介面,然後按『b』登陸即『boot』之意,這樣就破解了root的密碼了。

下面我來講下stage1這個步驟是存在mbr前512位元組裡的,將之破壞的方式可以是這樣:dd if=/dev/zero of=/dev/sd# ,#表示grub所在磁碟,這裡假設我們已經將mbr進行破壞,我們只需在進入rescue模式時重新安裝grub即可。grub-install --root-directory /dev/sd# 當然我這是切根後的安裝,不然救援模式下是沒有grub-install這個命令的。

下面我來講下這兩個檔案乙個是核心檔案,乙個是虛擬檔案系統檔案,都是grub的核心檔案,我們在編寫grub.conf這個配置檔案的時候其他的都可以不寫,但是這兩個檔案卻不能省略。initramfs 檔案可以在救援模式使用

mkinitrd命令進行生成,mkinitrd initramfs-`uname -r`.img `uname -r`
下面我來講下幾種解決上述問題的方法。

1、有網路時,因為一般公司裡的主機裡的核心檔案及檔案系統檔案的版本都是同一種,所以我們可以聯通上特定的主機,使用scp這個命令將缺失的檔案拷貝過來,前提是得有這個主機的密碼。

2、當沒有網路時我們可以進入救援模式,安裝核心檔案中的/boot目錄,當然如果不嫌麻煩可以將核心全部重新安裝一遍,不過命令是這樣的

rpm -ivh ~kernel.... +路徑 --force,核心會自己判斷哪些缺失檔案,這樣也節省了不少時間。

3.這種方法就是掛載光碟檔案找到 isolinux目錄找到vmlinuz、initramfs檔案進行複製到、boot目錄即可。

chroot=/mnt/sysimage

rpm -ivh  ~packages/kernel~  --force| replacepkgs然後進而重新安裝grub檔案。

grub-install  --root-directory=/ /dev/sd#安裝完成後重新編輯grub.conf檔案。

啟動後對/etc/fstab檔案進行修復。

這裡假設我們原來的硬碟在/dev/sda上面,我們這裡新加一塊/dev/sdb

接下來我們對其進行分割槽及格式化、fdisk /dev/sdb 分出200m大的一塊/dev/sdb1磁碟  然後在對其進行格式化,mkfs.ext3 /dev/sdb1

完成後我們在/mnt目錄裡新建/sysroot 來模擬乙個根檔案系統,

我們在/sysroot裡新建根目錄的那些資料夾,這裡使用如下指令碼調入我們需要引入的命令,在執行的時候我們將根寫為/mnt/sysroot即可。

``` shell#!/bin/bashread -p 『    please input your root dirname』 rootdir

ch_root="$rootdir"[ ! -d $ch_root ] && mkdir $ch_rootbincopy() $ ] || mkdir -p $$

[ -f $$ ] || cp $cmd_path $$

return 0

else

echo "command not found."

return 1

fi}libcopy() $ ] || mkdir -p  $$

[ -f $$ ] || cp $loop $$

done}  

read -p "please input a command or quit: " command while [ "$command" != "quit" ];do

if bincopy $command ;then

libcopy $command

fi read -p "please input a command or quit: " commanddone

執行完成後我們將/bin/bash 拷貝到/mnt/sysroot/bin目錄中作為我們系統啟動後的第乙個初始化程式執行,然後我們將/boot目錄整個複製到/mnt/sysroot目錄中,這裡我們重新編寫一下/mnt/sysroot/boot/grub/grub.conf檔案,我們注意更改一些grub的根和檔案系統的根即可。好了,小夥伴們準備好了嗎,趕緊去試一試吧,這裡我就不貼圖了。
6、 下面我這裡對上述問題再深化了一下,因為就是喜歡折騰,根本停不下來,原來我們的boot目錄是在根檔案系統下面,我們這裡新加一塊硬碟,讀入

echo '----' /sys/class/scic_host/host2/scan 將它進行重新分割槽,假設我們這邊的根檔案系統的磁碟是/dev/sda,我們這裡新加的磁碟是/dev/sdb,我們將之新加乙個分割槽/dev/sdb1,格式化為ext3,,這裡我們將/boot檔案目錄下的檔案先已到/tmp目錄下,然後將它解掛載到/dev/sdb1,這裡我們進入救援模式,在輸入chroot =/mnt/sysimage後,我們輸入

捕獲1.png

注意這裡的安裝目錄寫原來的根檔案系統所在目錄,這裡我們容易混淆,接下來我們重啟進入硬體啟動,我們輸入

捕獲2.png

然後我們繼續輸入

捕獲3.png

然後輸入

捕獲4.png

進入檔案系統後重新編寫/boot/grub/grub.conf檔案即可。

實驗專案1,控制系統啟動

首先在bootsect.s 中修改輸出的msg內容,並計算msg內容長度,在長度上加上6.寫到cx中。編譯並執行bochs,可以看到輸出的msg變化了。有時,繼承傳統意味著別手蹩腳。x86 計算機為了向下相容,導致啟動過程比較複雜。請找出 x86 計算機啟動過程中,被硬體強制,軟體必須遵守的兩個 多...

多系統啟動

多啟動的流程是從ntldr開始的,ntldr通過讀取boot.ini,確定作業系統啟動分割槽的位置,對於,只有乙個作業系統的電腦,ntldr直接讀取ntdetect.com,開始下一步的流程,如果是多個系統的情況 2000 xp為例 ntldr把boot.ini選擇選單的內容顯示在螢幕上,讓使用者選...

系統啟動美化

1.usplash 因為喜歡mac所以把ubuntu美化的和mac差不多了,但唯一的缺憾是系統載入畫面還是橘黃色的ubuntu。今晚google了一下,綜合幾個文章終於把usplash弄成mac的樣式了。現在把方法總結一下。1 安裝開機畫面和grub的管理工具 sudo apt getinstall...