关于grub的一些实验

关于grub的一些实验

关于grub的一些实验

手动引导进入系统

也就是写 grub.conf文件
关于grub的一些实验

改grub界面图片

1、进入/root/grub目录发现里面有很多东西,查看grub.conf可以知

关于grub的一些实验

2、我们查看下图片的格式

关于grub的一些实验
这是一个gzip压缩的图片文件

用vim可以查看开头
关于grub的一些实验
经查得知这是一个640*480的文件而且只支持14色

3、自定义图片

先照一张图片用工具改成这种想要的格式
关于grub的一些实验
关于grub的一些实验

改配置文件的图片名称也可以达到目的

4、重启就行了

关于grub的一些实验

grub 1 1.5 2阶段被删除的修复(此方法适用于删除 /root/grub 目录)

stage1 破坏
dd if=/dev/zero of=/dev/sda bs=1 count=446
stage1.5 破坏
dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1

1、进入光盘救援

修复grub-install /dev/sda
关于grub的一些实验

如果,/boot/grub 目录的内容没有被破坏可以用一下命令修复

2、同样进入光盘救援模式

切根 chroot /mnt/sysimage
进入grub命令修复
关于grub的一些实验

删除/boot,恢复

rm -rf /boot

光盘启动,进入rescue模式

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom 挂载光盘

rpm -ivh /mnt/cdrom/Packages/kernel-2*.rpm –root=/mnt/sysimage –replacepkgs|force (二选一)

chroot /mnt/sysimage

grub-install /dev/sda 修复grub目录

vim /boot/grub/grub.conf 写grub的配置文件

关于grub的一些实验

删除init文件(/sbin/init)

是挂载根之后运行的程序
关于grub的一些实验

这时候命令什么的都不支持,没办法只能重启
关于grub的一些实验

关于grub的一些实验

删除 /boot下的vmlinuz-*.文件和 initramfs-*.img文件

1、进入救援模式

2、挂载光盘 把本版本对应的vmlinuz*拷贝过来

3、用命令生成initramfs-*.img文件

切换到根 chroot /mnt/sysimage
mkinitrd /boot/initramfs-uname -r.img uname -r

关于grub的一些实验

或者直接从别的相同的机器上边把这两个文件拷贝过来

scp 10.1.0.1(ip地址):/boot/vmlinuz* /boot

scp 10.1.111.11:/boot/initramfs* /boot

注意:从光盘中拷贝的vmlinuz文件可能不带版本号,要把grub.conf改一下

如果不成功可能是selinux的问题  在进入时可以按e 编辑kernel文件 在之后加入 selinux=0

删除/boot 和/etc/fstab的恢复

注意是先修复/etc/fstab文件

rm -rf /boot /etc/fstab
光盘启动,进入rescue模式
检查/
blkid;fdisk -l(查看文件系统,根和boot分别在那个分区中)
mkdir /mnt/sda2 (创建几个文件进行挂载 找到/所在的那个分区并挂载上)
mount /dev/sda2 /mnt/sda2(把根挂载上)
vi /mnt/sda2/etc/fstab(写配置文件的基本配置信息 )

/dev/sda1 /boot ext4 defaults 1 1
/dev/sda2  /      ext4 defaults 1 2

reboot

光盘启动,进入rescue模式,挂载/mnt/sysimage (下边的就一样了)

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
chroot /mnt/sysimage
rpm -ivh /mnt/cdrom/Packages/kernel-2*.rpm  –replacepkgs|force
grub-install /dev/sda

vim /boot/grub/grub.conf

default=0
timeout=3
title wanglinux
root (hd0,0)
kernel /vmlinuz.... root=/dev/sda2
initrd /initramfs

逻辑卷情况下,删除/boot 和/etc/fstab,恢复之

和上边差不多,只不过要先启用vg 用lvscan查看文件系统的挂载情况!

rm -rf /boot /etc/fstab

光盘启动,进入rescue模式

检查

lvscan 查看lv的分区

vgchange -ay 启用vg

mount /dev/vg0/root /mnt/sysimage 挂载根所在的分区

vi /mnt/sysimage/etc/fstab

/dev/sda1 /boot ext4 defaults 1 1 
/dev/vg0/root  /      ext4 defaults 1 2
/dev/vg0/usr /usr 
/dev/vg0/var /var

reboot
重启看下次是否能自动找的各个分区

光盘启动,进入rescue模式,挂载/mnt/sysimage

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
chroot /mnt/sysimage
rpm -ivh /mnt/cdrom/Packages/kernel-2*.rpm  –replacepkgs|force
grub-install /dev/sda

vim /boot/grub/grub.conf

    default=0
    timeout=3
    title wanglinux
    root (hd0,0)
    kernel /vmlinuz.... root=/dev/vg0/root
    initrd /initramfs .

原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/46919

(0)
qzxqzx
上一篇 2016-09-16 15:56
下一篇 2016-09-16 16:46

相关推荐

  • Linux磁盘配额

    磁盘配额 什么是磁盘配额? 磁盘配额(Quota)是Linux系统中由于是多用户、多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中少数几个用户大量占掉了磁盘空间的话,那肯定影响其他用户的使用权限。因此我们就需要对每个用户限制硬盘使用空间,来避免此种情况的发生,这就是磁盘配额。 Quota的一般用途: *针对WWW server,例如:每个…

    Linux干货 2016-09-01
  • Shell脚本编程基础

    1编程基础 程序:指令+数据 程序编程分格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 Shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级:编译:高级语言->编译器->目标代码 编译性语言编写的程序通常是需要通过编译器去转换成计算机可以识别的二进制文件,…

    2017-11-27
  • Linux bash中的命令行展开介绍及应用示例

    Linux bash中的命令行展开介绍及应用示例 在Linux bash中可以使用命令行展开特性一步完成需要分开成多步完成的操作,达到事半功倍的效果。在Linux指令参数位置使用"{}" 将相应的参数括起来,括号中的参数以逗号分隔,然后bash在执行这一指令时会自动将括号中的内容进行展开。 相关示例如下: 同时创建多个目录,在/tmp目录…

    Linux干货 2016-11-07
  • shell脚本编程__bash的配置

    shell脚本编程__bash的配置   一、bash的配置文件:   按生效范围划分,存在两类:     全局配置: /etc/profile /etc/profile.d/*.sh /etc/bashrc    个人配置: ~/.bash_profile ~/.bashrc 二、she…

    Linux干货 2016-08-26
  • bash的特性和目录管理命令

    bash的特性和目录管理命令 bash特性     1. 命令补全机制: 所谓的命令补全,就是当输入命令的前几个字符的时候,按下tab,此时,bash根据输入的字符串,到path路径下进行寻找,把找到的且能唯一根据这个字符串标识的命令,予以补全。 如果根据这个字符串能在一个目录下面找到多个相同的命令,则再按一下tab就能列出所有…

    Linux干货 2016-10-29