小c学Linux(12)--centos 6.5 grub引导详解
2018-04-02 15:46
483 查看
系统运行级别:
grub:
1. 1st stage 位于MBR中,为了引导2nd stage
2. 1.5 stage 位于boot基本磁盘分区中,识别内核文件所在分区
3. 2nd stage 位于boot基本磁盘分区中,grub真正的引导程序
grub三大功能:
配置文件:
选择要启动的内核或系统
hiddenmenu:隐藏选择界面(默认)
交互式接口
e:进入编辑模式
设置密码保护
进入选择内核界面需要密码
系统启动需要密码
一般用户的电脑装完机后是没有设置grub密码保护的,我们可以通过单用户模式,直接以root用户登陆,破解管理员密码。开机按任意键进入grub界面
敲
编辑kernel,在后面空格+1
保存按
密码修改成功。
所以当我们忘记root密码,只要没有设置grub还是能够通过这种方式找回来的。
grub设置密码保护:
将得到的
全局下
titile下
使用光盘镜像修复,进入bios将光盘作为启动项
5没有成功,则:
–root-directory=/ : 这是/boot的父目录,也就是系统根目录
sysn同步到磁盘
exit保存退出
reboot重新启动
ok
创建grub:
创建根文件系统:
复制bash,ls,mkdir命令到制作的系统上/mnt/sysroot
复制linux内核和initrd到/mnt/boot下
链接一下bash
配置grub.conf文件,用制作的sdb重启,完成
以上仅在centos 6.5上可行….
0-6:7个级别 0:关机 1:单用户模式,直接以root用户登录 2:多用户模式,不支持NFS文件系统 3:完全多用户模式,文本模式,不启动图形界面 4:预留级别 5:完全多用户模式,图形模式 6:重启
bootloader
grub简介
MBR里的446个字节的引导程序。grub:
1. 1st stage 位于MBR中,为了引导2nd stage
2. 1.5 stage 位于boot基本磁盘分区中,识别内核文件所在分区
3. 2nd stage 位于boot基本磁盘分区中,grub真正的引导程序
grub三大功能:
配置文件:
/boot/grub/grub.conf
选择要启动的内核或系统
hiddenmenu:隐藏选择界面(默认)
交互式接口
e:进入编辑模式
设置密码保护
进入选择内核界面需要密码
系统启动需要密码
一般用户的电脑装完机后是没有设置grub密码保护的,我们可以通过单用户模式,直接以root用户登陆,破解管理员密码。开机按任意键进入grub界面
敲
e键进入编辑模式
编辑kernel,在后面空格+1
保存按
b以root用户直接登录
passwd修改root用户密码
密码修改成功。
init 3修改运行级别,系统重启,用修改的密码登陆,成功。
所以当我们忘记root密码,只要没有设置grub还是能够通过这种方式找回来的。
grub设置密码保护:
将得到的
md5码写入grub.conf配置文件。
全局下
password --md5 md5码
titile下
password --md5 md5码
grub配置文件
/etc/boot/grub/grub.conf
default=#:指定默认启动的内核或os timeout=#:等待用户选择要启动的内核或os的时长,单位为秒钟 splashimage= :指定使用的背景图片 hiddenmenu:隐藏菜单 password --md5 md5码 设置内核界面的密码 title. 操作系统或内核的标题 root(hd0,0)设定内核文件所在的分区为grub的根 (Device Part) Device(磁盘)表示方式:在grub中,统统以hd开头,并紧跟一个数字做各磁盘设备的标记,从0开始 part表示方式:代表分区,从0开始编号 kernel. 定义要使用的文件,后面可以附加传递给内核的启动参数 指定内核文件及传递给内核的参数 参数:ro root=设备文件,quiet 静默模式输出 initrd. 指定为内核提供额外驱动等功能的ram disk或ram fs文件 文件:通常为cpio归档,并使用gzip压缩,通常以.img作为文件后缀 password --md5 md5码 设置系统进入密码
模拟grub损坏
破坏bootloaderdd if=/dev/zero of=/dev/sda bs=100 count=1,**bootloader**446字节,100<446
使用光盘镜像修复,进入bios将光盘作为启动项
chroot /mnt/sysimage/将系统根挂载至/mnt/sysimage下
grub进入grub命令行
root (hd0,0) setup (hd0)如果提示
root command not found
5没有成功,则:
grub-install --root-directory=/ /dev/sda
–root-directory=/ : 这是/boot的父目录,也就是系统根目录
sysn同步到磁盘
exit保存退出
reboot重新启动
ok
利用grub给第二块磁盘制作一个简单可启动的linux
fdisk -l /dev/sd[a-z]查看一下有几块磁盘
fdisk /dev/sdb分区
mke2fs -t ext4 /dev/sdb1,sdb2
mount /dev/sdb1 /mnt/boot
mount /dev/sdb2 /mnt/sysroot
创建grub:
grub-install --root-directory=/mnt /dev/sdb
创建根文件系统:
mkdir -pv /mnt/sysroot/{etc/rc.d,dev,var,lib,lib64,bin sbin,sys,tmp}
复制bash,ls,mkdir命令到制作的系统上/mnt/sysroot
#!/bin/bash # #DESCRIPTION : MOVE COMMAND #VERSION : 1.0 #author : xiaoc copy(){ for i in $*;do dir=`dirname $i` [ -d /mnt/sysroot$dir ] || mkdir -p /mnt/sysroot$dir [ -f /mnt/sysroot$i ] || cp $i /mnt/sysroot$dir/ done } main(){ ldd_path=`which ldd` while true;do read -p "Enter a command : " command [[ "$command" == "quit" ]] && echo "quit" && exit 0 command_path=`which --skip-alias $command 2> /dev/null` if [[ -x $command_path ]];then copy `$ldd_path $command_path | grep -o "/[^[:space:]]\{1,\}"` copy $command_path else echo "not a command" fi done } main
复制linux内核和initrd到/mnt/boot下
cp /boot/vmlinuz-Version /mnt/boot/vmlinuz
cp /boot/initramfs-Version.img /mnt/boot/iniyramfs.img
链接一下bash
ln -sv bash sh因为很多内置脚本都是访问sh
配置grub.conf文件,用制作的sdb重启,完成
vim /mnt/boot/grub/grub.conf default=0 timeout=5 title root(hd0,0) kernel /vmlinuz ro root=/dev/sda1 selinux=0 init=/bin/bash initramfs /initramfs
系统初始化脚本:`/etc/rc.d/rc.sysinit
设置主机名: 打印文本欢迎信息 激活SELinux和udev 激活swap 挂载/etc/fstab定义的本地文件系统 实现检查根文件系统并对其以读写重新挂载 设置系统时钟 装载键盘映射 根据/etc/sysctl.conf设置内核参数 激活RAID和LVM设备 清理操作
以上仅在centos 6.5上可行….
相关文章推荐
- Linux系统之工具篇(一)DRBD 单双主模式区别详解,Centos6.5(64bit)与nfs文件系统使用结合测试
- Linux(centos6.5)下安装OpenSSL 安装图文详解
- Linux - CentOS6.5服务器搭建与初始化配置详解(下)
- Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0)
- Linux(centos 6.5) 调用java脚本以及定时执行的脚本实例及配置文件详解
- 详解CentOS 6.5中安装mysql 5.7.16 linux glibc2.5 x86 64(推荐)
- grub命令_Linux grub 命令用法详解:多重引导程序grub的命令行shell工具
- Linux - CentOS6.5服务器搭建与初始化配置详解(上)
- CentOS 6.5 修复grub引导
- VMware12 安装64位 CentOS 6.5 图文详解
- 详解CentOS 6.5中安装mysql 5.7.16 linux glibc2.5 x86 64(推荐)
- linux CentOS/redhat 6.5 LVM分区使用详解
- linux CentOS 6.5 下安装jdk1.7, tomcat7.0环境配置
- CentOS 6.5系统服务详解
- centos 6.5内核编译步骤及配置详解
- 制作可用grub引导Linux系统…
- Linux安装java JDK(系统:centos 6.5 JDK:JDK8.0)
- VMware虚拟机安装Linux centOS 6.5使用桥接
- CentOS linux目录作用详解
- 安装CentOS、Linux系统时,GPT分区不能引导的解决方法