且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

启动和内核管理

更新时间:2022-09-20 14:27:13

实验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

 启动和内核管理

救援模式,无法挂载到/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中所建的盘。如果可以启动,就说明制作成功。


本文转自    honeyorange   51CTO博客,原文链接:http://blog.51cto.com/13172732/1968222