系統管理至grub故障排錯及自建linux

第二章    系統啟動故障排除

    1、grub配置文件寫錯,無法進入系統

    步驟:(修復完成后記得修改配置文件為正確的文件)

    方法一:進入啟動菜單項后,修改菜單項為正確的內容,然后啟動

    1.png

    2.png

    3.png

    4.png

    5.png

    6.png

    方法二:進入啟動菜單后,進入grub交互式界面,手動引導啟動

    7.png

    

    2、grub的stage1故障修復

    步驟:

    <1>破壞grub的stage1,如果未重啟,則直接利用grub-install命令進行修復,如果重啟,則繼續

    1.1.png

    <2>重啟后發現無法進入系統,此時可以利用光盤進入緊急救援模式,然后進行grub-install安裝修復

    1.2.png

    1.3.png

    1.4.png

    1.5.png

    1.6.png

    1.7.png

    1.8.png

    1.9.png

    1.10.png

    1.11.png

    1.13.png

    3、grub的stage1.5故障修復

    步驟:

    <1>破壞grub的1.5階段,重啟系統(如果沒重啟,可直接用grub-install進行安裝)

    1.png

    2.png

    <2>進入緊急救援模式(進入救援模式的步驟省略),進行grub-install安裝修復grub

    3.png

    4、grub的stage2故障修復(刪除/boot/grub目錄和內核文件,ramdisk文件)

    步驟:

    <1>刪除/boot/grub目錄和內核文件vmlinuz,ramdisk文件initramfs,然后重啟

    (如果沒重啟,可以直接拷貝系統光盤上的vmlinuz文件,然后運行mkinitrd命令生成initramfs文件,然后運行grub-install命令生成修復grub文件,最后編輯grub配置文件即可)

    1.png

    2.png

    <2>進入緊急救援模式(進入過程省略)進行修復

    3.png

    4.png

    7.png

    8.png

    5、破壞grub的stage1、stage1.5、刪除boot目錄的故障恢復

    步驟:

    <1>破壞stage1、stage1.5,刪除boot目錄,然后重啟

        如果沒重啟,rpm安裝kernel包(注意加上–replacepkgs或–force選項,因為kernel安裝的文件不僅僅有boot目錄下的相關文件,如果不用選項,會報錯),然后grub-install安裝修復grub,然后編輯生成一個grub.conf配置文件即可

    1.png

    <2>進入緊急救援模式(進入緊急救援模式的過程省略),修復

    2.png

    111.png

    6.png

    6、破壞grub的stage1、stage1.5、刪除boot目錄,刪除/etc/fstab文件的故障恢復

    步驟:

    <1>破壞grub的stage1、stage1.5、刪除boot目錄,刪除/etc/fstab文件,重啟系統

        如果破壞后,尚未重啟系統,只需重新編輯/etc/fstab文件,然后與上個實驗一樣,安裝kernel包(注意加–replacepkgs或–force選項),grub-install安裝grub,然后提供grub的配置文件即可

    1.png

    

    <2>進入緊急救援模式,進行修復

    2.png

    3.png

    4.png

    5.png

    6.png

    8.png

    9.png

    10.png

    11.png

    15.png

    16.png

    7、當系統安裝在lvm邏輯卷上時, 破壞grub的stage1、stage1.5、刪除boot目錄,刪除/etc/fstab文件的故障恢復

    步驟:

    <1>破壞stage1、stage1.5,刪除boot目錄、刪除/etc/fstab文件,并重啟

    1.png

    

    <2>進入緊急救援模式修復

    2.png

    3.png

    4.png

    5.png

    6.png

    8.png

    9.png

    10.png

    11.png

    14.png

    15.png

    8、系統上init文件、inittab文件破壞后的恢復方案

    步驟: 思路為查詢文件是由哪個程序生成,然后在救援模式下進行安裝對應的包,進行修復

    1.png

    2.png

    3.png

第三章    自建Linux系統

    實驗環境:

        CentOS6.8的64位系統

        思路為:在現有虛擬機上添加一個新磁盤,然后對磁盤做出相關操作,然后新建一個虛擬機,新建的虛擬機利用該塊磁盤完成系統啟動

    步驟:

    1、在原有虛擬機上添加一塊磁盤

    2.png

    3.png

    4.png

    5.png

    6.png

    7.png

    8.png

    9.png

    2、對添加的磁盤進行分區,格式化

    10.png

    11.png

    12.png

    3、掛載新建的磁盤分區

    13.png

    4、拷貝內核文件、ramdisk文件到新磁盤的boot目錄,為新磁盤創建grub,提供grub配置文件

    14.png

    15.png

    5、為新磁盤的根添加相關的目錄結構,并拷貝相關程序及程序依賴的庫文件到新磁盤上

    18.png

    19.png     

      QQ截圖20160917210321.png

        卸載磁盤,否則磁盤無法引用

    6、新建虛擬機,并將虛擬機的磁盤指向到我們做好的磁盤

    21.png

    22.png

    23.png

    24.png

    25.png

    26.png

    27.png

    28.png

    29.png

    30.png

    31.png

    32.png

    33.png

    7、啟動虛擬機,驗證功能

    34.png

    35.png

    8、復制命令用到的腳本為:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[root@localhost ~]# cat scripts/course/copycmd.sh 
#!/bin/bash
# Autor: nwc
# Version: 2.0
# CreateTime: 
 
function CMDCP() {
    DIR=`dirname $CmdPath`
    if [ -d ${LuJing}${DIR} ] ;then
        cp $CmdPath ${LuJing}${DIR} && echo "cp $CMD success" || echo "cp $CMD fail"
    else
        mkdir -p ${LuJing}${DIR}
        cp $CmdPath ${LuJing}${DIR} && echo "cp $CMD success" || echo "cp $CMD fail"
    fi 
}
 
 
function CMDLIBCP() {
    for in ${LibCmd} ; do
        LIBDIR=`dirname $i`
        if [ -d ${LuJing}${LIBDIR} ];then
            cp $i ${LuJing}${LIBDIR} && echo "cp $i success" || echo "cp $i fail" 
        else
            mkdir -p ${LuJing}${LIBDIR}
            cp $i ${LuJing}${LIBDIR} && echo "cp $i success" || echo "cp $i fail" 
        fi
    done
}
 
 
 
 
while true;do
     read -p "Input a exec program name like ls/cat... q for quit  " CMD
    case $CMD in 
    q)
        echo "exit..."
        exit
    ;;
    *)
        if which --skip-alias $CMD &>/dev/null  && [[ $CMD != "q" ]]; then
                 CmdPath=`which --skip-alias $CMD`
            LibCmd=`ldd $CmdPath|grep -o -E "/[^[:space:]]+"`
            LuJing=/mnt/sys
            CMDCP
            CMDLIBCP
        else
                  echo "you input is not a right command"
                continue
        fi
    ;;
    esac
done

轉載請注明:linux

原創文章,作者:wencx,如若轉載,請注明出處:http://www.www58058.com/46247

(0)
wencxwencx
上一篇 2016-09-13
下一篇 2016-09-13

相關推薦

  • week2

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 常用工具cp mv rm cat tac head tail more less stat cp   cp SRC…DEST A. 如果SRC是文件: a. 如果目標不存在:新建DEST,并將SRC中的內容填充至DEST中。 b. 如果目標存在: (1). 如…

    Linux干貨 2016-11-06
  • CentOS7系統用戶空間管理進程systemd詳解

    概述:     系統啟動過程中,當內核啟動完成,后加載根文件系統,后就緒的一些用戶空間的服務的管理工作,就交由init進行啟動和管理,在CentOS6之前的init的管理方式都類似,相關的內容我們在之前的文章中也做出過介紹。在CentOS7上,init變成了systemd,其管理方式也發生了重大的變化,本章就跟大家歐一…

    Linux干貨 2016-09-21
  • 22期網絡班+第一周作業+深圳+王金寶

    1、描述計算機的組成及其功能? 答: 顯示器和主機,顯示器就不說了 主機里又有,主板,又叫主機板(mainboard)、系統板(systembourd)和母板(motherboard);它安裝在機箱內,是微機最基本的也是最重要的部件之一。主板一般為矩形電路板,上面安裝了組成計算機的主要電路系統,一般有BIOS芯片、I/O控制芯片、鍵盤和面板控制開關 接口、指…

    Linux干貨 2016-08-13
  • 文本處理工具

    文本查看工具 less [les]  查看文件 功能比MORE更強大      -N  顯示行號      查看時使用的命令      / OR ? 搜索的內容    搜索關鍵字 &nbsp…

    Linux干貨 2017-04-13
  • 8 文本查看、處理與統計分析

    文本查看 cat cat [OPTION]… [FILE]… 該命令用于正向查看文本文件,但不可分頁,一次性顯示完成 參數說明 參數 說明 -E 顯示行結束符$ -n 對顯示出的每一行進行編號 -A 顯示所有控制符 -b 非空行編號 -s 壓縮連續的空行成一行 -T 顯示tab為^I 示例  tac tac […

    Linux干貨 2016-08-10
  • 8-10 bash變量淺談

    8-10 作業 一、腳本 1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中 3、編寫腳本/root/bin/disk.…

    Linux干貨 2016-08-15
欧美性久久久久