1. 程式人生 > >啟動和內核管理

啟動和內核管理

啟動 內核管理 實驗

實驗1rm -rf /boot 恢復

1. rm -rf /boot/*

技術分享

重啟的時候虛擬機啟動不起來。

技術分享

2. 進入救援模式

技術分享

技術分享

技術分享

3.進入shell中,切換根目錄: chroot /mnt/sysimage

技術分享

4. mkinitrd/boot/initramfs-`uname -r`.img `uname -r`為當前正在使用的內核重新制作ramdisk文件

技術分享

5. mount /dev/sr0 /mnt;cp /mnt/isolinux/vmlinuz /boot 內核文件

技術分享

6 grub-install /dev/sda 安裝grub


7 vim /boot/grub/grub.conf 創建conf文件

default=0

timeout=5

title centos6.9

kernel /vmlinuz root=/dev/sda2

initrd /initramfs-2.6.32-696.el6.x86_64.img

註意:Grub 和內核是不同的

結束

實驗2:在分區情況下,rm -rf /boot/etc/fstab,恢復

這個實驗與上面的實驗有點類似,但是這個實驗進入救援模式後找不到掛載點。

1 rm -rf /boot /etc/fstab

reboot

技術分享

2 救援模式,無法掛載到/mnt/sysimages。這是因為刪除了fstab文件

通過掛載查看那個分區是/root,那個分區是boot,因為之前把boot 裏的東西刪光了,所以是空的。

mount /dev/sda{1,2,...} /mnt/tmp;ls/mnt/tmp

mount /dev/sda2 /mnt/tmp

技術分享

新建fstab文件,因為這裏只能用vi,不方便,所以用重定向 cat > /mnt/tmp/etc/fstab,編輯完成後ctrl +d 退出。註意:在此之前要先把根掛載起來。

/dev/sda1 /boot ext4 defaults 0 0

/dev/sda2 / ext4 defaults 0 0

/dev/sda3 /app ext4 defaults 0 0

/dev/sda5 swap swap defaults 0 0

技術分享

exit;exit重新進入救援模式,掛載到/mnt/sysimages成功


mkdir 1

mount /dev/sr0 1

技術分享

rpm -ivh /mnt/cdrom/Packages/kernel.xxx.rpm--root=/mnt/sysimages --force

技術分享


chroot /mnt/sysimages

grub-install /dev/sda


vim/boot/grub/grub.conf

default=0

timeout=5

title linux

kernel /vmlinuz-2.6.32-696.el6.x86_64 root=UUID=6da11b60-dd80-460a-a00f-beb8b3373b5c

initrd /initramfs-2.6.32-696.el6.x86_64.img 技術分享

exit;exit

在做這個實驗時,由於刪除了boot,所以後來找不到boot。原本直接刪boot是刪不掉的,但由於我的boot沒有自動掛載,所以就刪掉了。

實驗3:在LVM情況下,rm -rf /boot/etc/fstab,恢復

Mv /etc/fstab /root

Rm –rf /boot/*

進入救援模式,同樣找不到掛載的地方

技術分享

查看邏輯卷:lvdisplay

技術分享

Mkdir /mnt/tmp

Mount /dev/UvlGroup/lv_root/tmp但是發現掛載不上,這是因為邏輯卷下有一個腳本被禁用了,所以要激活

技術分享


查看卷組狀態lvscan

技術分享

vgchange –ay啟用卷組,啟用後就可看到邏輯卷了。

技術分享

找不到掛載點是因為刪除了/etc/fstab這個文件,所以要先進行編輯這個文件。

vim /mnt/tmp/etc/fstab

cat > /mnt/tmp/etc/fstab

/dev/sda1 /boot ext4 default 0 0

/dev/VolGroup/lv_root / ext4default 0 0

/dev/ VolGroup/lv_home /home ext4 default 0 0

/dev/ VolGroup/lv_swap /swap ext4 default 0 0

技術分享

上述操作完成後,再次進入救援模式

技術分享

Chroot /mnt/sysimage

Mount /dev/sr0 /mnt

技術分享

接下來的步驟類似於實驗1

安裝內核缺少的文件,要強制安裝,否則會提示已經安裝過了。

技術分享

grub-install /dev/sda 安裝grub


Sync

Vim /boot/grub/grub.conf

實驗總結:1.在進入救援模式時,一直進不去,我很郁悶,這是為啥呢?

原來要用到邏輯卷,所以就使用了網絡安裝,所以忘了掛載光盤。希望大家別像我一樣!

實驗4:自制Linux

在centos6中新加一塊硬盤,以便於卸載安裝到別的機器上

分區並創建文件系統fdisk /dev/sdb,分兩個必要的分區


/dev/sdb1 對應/boot

/dev/sdb2 對應根 /

mkfs.ext4 /dev/sdb1 mkfs.ext4 /dev/sdb2

技術分享

掛載boot

mkdir /mnt/boot (子目錄必須為boot) mount /dev/sdb1 /mnt/boot

技術分享

安裝grub ,grub-install --root-directory=/mnt /dev/sdb

技術分享

說明grub安裝成功。
技術分享

恢復內核initramfs 文件

cp /boot/vmlinuz-2.6.32-642.el6.x86_64/mnt/boot/

cp/boot/initramfs-2.6.32-642.el6.x86_64.img

技術分享


建立grub.conf:

vim /mnt/boot/grub.conf

title wanglinux

kernel /vmlinuz-2.6.32-642.el6.x86_64

root=/dev/sda2 selinux=0 init=/bin/bash

initrd /initramfs-2.6.32-642.el6.x86_64.img

技術分享

網卡的去的驅動模塊

locate e1000

cp/lib/modules/2.6.32-642.el6.x86_64/kernel/drivers/net/e1000/e1000.ko

創建一級目錄

mkdir /mnt/system

mount /dev/sdb2 /mnt/sysroot

cd /mnt/system

cp {etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}

復制bash 和相關庫文件

復制相關命令及相關庫文件

如:ls,cat,vim,reboot,hostname等等.

到此Linux制作完成,可以新建一個虛擬機,刪除原來的硬盤,使用centos6中所建的盤。如果可以啟動,就說明制作成功。



本文出自 “13162732” 博客,請務必保留此出處http://13172732.blog.51cto.com/13162732/1968222

啟動和內核管理