1. RHEL6中制作Ramdisk文件,其文件名和rehl5所有区别
[root@server8 grub]# mkinitrd /root/initramfs-`uname -r`.img `uname -r` 通过uname -r代表的是内核的版本,使用命令连接符“作为一个变量
相关阅读:
- Linux启动引导过程 grub和mbr http://www.linuxidc.com/Linux/2013-07/87923.htm
- grub 的安装与使用 http://www.linuxidc.com/Linux/2013-07/87682.htm
- grub引导程序配置文件分析 http://www.linuxidc.com/Linux/2013-07/87547.htm
- CentOS 6.4 grub加密码 http://www.linuxidc.com/Linux/2013-07/87124.htm
2. 重新安装grub
[root@server8 ~]# grub-install /dev/sda 将grub安装到第一块磁盘中
3. grub.conf文件详解
[root@server8 ~]# cat /boot/grub/grub.conf
default=0 默认超时不采取动作启动的title,0表示启动第一个title
timeout=5 超时时间
splashimage=(hd0,0)/grub/splash.xpm.gz 启动时显示的图片
hiddenmenu 是否影藏菜单
title Red Hat Enterprise Linux (2.6.32-71.el6.i686) 第一个title显示内容,可以任意写
root (hd0,0) boot所在的分区,使用的是(hd0,0)的方式书写
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=4e076fae-197d-42a7-b177-ac9ade0548cb rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img 指定Ramdisk文件所在的文件名
关于对(hd0,0)的理解: linux系统识别磁盘的名称有IDE磁盘和SCSI磁盘两种,前者命名为hda、hdb、hdc、hdd,后者是sda、sdb、sdc、sdd,表示的是磁盘的名字和驱动类型,
当需要表示分区的时候是通过数字的方式表示,如sda1表示的是第一个SCSI驱动磁盘的第一个分区,hdb2表示的是IDE接口磁盘的第二个分区,以此类推。然而,grub识别磁盘的方
式和linux识别有所差别,其实通过(hdN,M)的方式表示,N代表的是第几个磁盘,0表示第一块磁盘,1表示第二块磁盘,以此类推,而不管是IDE接口还是SCSI接口的磁盘,都忽略,
使用M表示分区号,0表示第一个分区,1表示第二个分区,3表示第三个分区,linux和grub对磁盘表示的方法对应关系如下:
IDE接口的磁盘:
linux grub
/dev/hda1 (hd0,0)
/dev/hda2 (hd0,1)
/dev/hda3 (hd0,2)
… …
/dev/hdb1 (hd1,0)
/dev/hdb2 (hd1,1)
/dev/sdb3 (hd1,2)
… …
SCSI接口的磁盘:
linux grub
/dev/sda1 (hd0,0)
/dev/sda2 (hd0,1)
/dev/sda3 (hd0,2)
… …
/dev/sdc1 (hd2,0)
/dev/sdc2 (hd2,1)
/dev/sdc3 (hd2,2)
按照boot分区的不同类型,grub.conf的配置文件有所不同:
1. boot作为一个独立的分区 可以使用df /boot观察下设备是否挂载到/boot目录下,如果是则boot作为单独的分区,其内容如下:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-71.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=4e076fae-197d-42a7-b177-ac9ade0548cb rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LA
NG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img
|
相对路径写法
2. boot在/目录之下
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-71.el6.i686)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-71.el6.i686 ro root=UUID=4e076fae-197d-42a7-b177-ac9ade0548cb rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LA
NG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /boot/initramfs-2.6.32-71.el6.i686.img
|
多了一个boot
4. grub所支持的界面类型:
1. 菜单界面
可以在配置文件/boot/grub/grub.conf中设置多个引导的菜单,如可以引导双系统、Xen的kernel等,启动的时候可以选择
2. 编辑界面
再启动的过程中按e键,可以对所选中的菜单进行编辑,如修正错误的字符等,d可以直接删除,在菜单界面所做的操作都只是当前有效
3. 命令界面
在bash的环境下输入grub即可直接进入到grub所在的命令shell界面下,在该界面下可以执行类似和bash下的命令,或者在启动的过程中在菜单内直接输入c进行命令行编辑
5. grub安全保护
1. 明文密码
[root@server8 ~]# vim /boot/grub/grub.conf 编辑配置文件,在title下面增加password关键字设置密码,但是这种方式是明文的,不安全!
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-71.el6.i686)
password RedHat 设置明文密码
root (hd0,0)
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=4e076fae-197d-42a7-b177-ac9ade0548cb rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LA
NG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img
2. 加密密码
[root@server8 ~]# grub-md5-crypt 生成md5加密的密码字符串
Password:
Retype password:
$1$m0aTJ1$/XpzyRlZvQ8/sQij5YIfS1
[root@server8 ~]# vim /boot/grub/grub.conf 将md5加密的字符串写入到配置文件内
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-71.el6.i686)
password –md5 $1$m0aTJ1$/XpzyRlZvQ8/sQij5YIfS1 设置加密的密码
root (hd0,0)
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=UUID=4e076fae-197d-42a7-b177-ac9ade0548cb rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LA
NG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img
6. RHEL6系统密码破解
Linux下有7中运行级别,0-6,每个运行级别的含义如下:
0 关机,使用init 0表示切换到运行级别0,即关机
1 单用户模式,类似于windows下的安全模式,不需要密码即可进入到系统
2 字符模式,没有nfs功能
3 完整的字符模式
4 保留
5 图形模式
6 重启,使用init6表示切换到运行级别6,即关机
生产环境下大多数是用的是运行级别3和5,通常服务器都不需要安装图形界面,所以直接设置运行级别3即可,其对应的配置文件是在/etc/inittab文件内的initdefault字段修改
如果在Linux下忘记了root用户的密码是一件很危险的事,因为root用户具有管理系统的所有权限,为了防止忘记root的密码,最好的方式是设置一个具有sudo权限的用户,即是
编辑配置文件/etc/sudoers文件,在大概89行后面增加如下内容: username ALL=(ALL) ALL,当忘记root密码之后,可以通过具有root权限的sudo用户进行密码修改,如果
也没有设置的话,可以进入到单用户模式,即是运行级别1下,通过passwd命令进行root密码的修改,其对应的步骤如下:
1. 重启系统,在grub界面中按任意键
2. 选中所需系统的title,然后按e编辑
3. 在kernel的后面添加1或者single(注意有空格),然后回车,按b启动系统
4. 此时不需要密码即可进入到系统,直接获得系统中root(#)的权限
5. RHEL6默认开启了Selinux,直接修改密码会被Selinux所阻止
6. setenforce 0零时关闭Selinux
7. 使用passwd命令进行密码修改,或者直接编辑/etc/shadow文件,将root用户的密码字段清空
更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10