Centos6
一个操作系统大致可以由内核加根文件系统中的二进制文件和各种库组成
CentOS 6 grub 安装
安装grub:
(1) grub-install 安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到 DIR/boot目录下
grub-install --root-directory=DIR /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)
配置文件:
[root@centos6|~]#cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0 #允许有多个内核启动项 0默认第一个
timeout=5 #选择等待时间 为5秒
splashimage=(hd0,0)/grub/splash.xpm.gz #壁纸
hiddenmenu #菜单
title CentOS 6 (2.6.32-754.el6.x86_64) #标题
root (hd0,0)=sda1
kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=7200b002-eaae-4686-9446-32d5ff1aa524 rd_NO_LUKS
#以上为内核文件 只读挂载 root=根挂载磁盘的UUID(重要)
rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-754.el6.x86_64.img #启动相关(重要)
两个菜单的配置方法
[root@centos6|data]#cat grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-754.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=7200b002-eaae-4686-9446-32d5ff1aa524 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-754.el6.x86_64.img
title CentOS 6.6
root (hd0,0)
kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=7200b002-eaae-4686-9446-32d5ff1aa524 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-754.el6.x86_64.img
[root@centos6|~]#mv /boot/grub/grub.conf /root
[root@centos6|~]#reboot
root=/dev/sda2 根分区挂载点
支持Tab键补全
输入grub> kernel /vmlinuz-2.6.32-754.el6.x86_64 root=/dev/sda2
grub> initrd /initramfs-2.6.32-754.el6.x86_64.img
grub> boot
dd if=/dev/zero of=/dev/sda bs=1 count=446#磁盘的前446扇区写入0
hexdump -C -n 512 /dev/sda #查看
破坏重启后直接弹出光盘启动界面
选择第三项救援模式
重要命令:
grub-install 会自动修复1,1.5,2阶段的相关文件
grub-install --root-directory=DIR /dev/DISK
1.切根
chroot /mnt/sysimage/
2,ls #查看是否成功显示文件则成功
3, grub-install /dev/sda #修复磁盘扇区
4, exit #退出两次
5,exit
6,选择reboot项重启
7,修复grub文件
grub> kernel /vmlinuz-2.6.32-754.el6.x86_64 root=/dev/sda2
grub> initrd /initramfs-2.6.32-754.el6.x86_64.img
grub> boot
rm -rf /boot/grub #删除grub下的所有文件
dd if=/dev/zero of=/dev/sda bs=1 count=446 #并破坏磁盘扇区
1,切根
chroot /mnt/sysimage/
2,ls #查看
3,grub-install /dev/sda #恢复磁盘扇区
4,同步命令 #为了把缓存中的命令写入磁盘这里执行下列命令多次
sync
sync
sync
5,vim /boot/grub/grub.conf # 手写配置文件以下为格式
default=0
timeout=5
title CentOS 6
kernel /vmlinuz-2.6.32-754.el6.x86_64 root=/dev/sda2
inird /initramfs-2.6.32-754.el6.x86_64.img
6,reboot重启
cpio -ivt 预览压缩文件
file跟文件 查看文件格式
进入启动界面
e
更改文件次序
1 救援模式
2 切根
3 #执行下列命令
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
sync
sync #写入缓存
sync
4 reboot
boot主要有内核 grub initrd 三大类文件
rm -rf /boot/
进入救援模式
#1切根
chroot /mnt/sysimage/
#2先挂载光盘
mount /dev/sr0 /mnt
#3找到内核文件
ls /mnt/ioslinux
#4把内核文件复制到boot目录下
cp /mnt/ioslinux/vmlinux /boot/
#5执行下列命令
mkinitrd initramfs.img $(uname -r)#创建 ramdisk文件这个文件是硬件的驱动程序
grub-install /dev/sda #生成grub文件
#6手写grub.conf文件
vim /boot/grub/grub.conf
default=0
timeout=5
title CentOS 6
kernel /vmlinuz-2.6.32-754.el6.x86_64 root=/dev/sda2
inird /initramfs-2.6.32-754.el6.x86_64.img
因为不知道哪个是根,只能一个一个试,直到找到根文件位置
#1
fdisk -l #列出所有硬盘
mkdir /mnt/root #先挂载到一个文件夹这里以/mnt/root为例
mount /dev/sda1 /mnt/root #先挂第一个目录下
ls /mnt/root #查看没有
umount /mnt/root #取消挂载
mount /dev/sda2 /mnt/root #再挂第二个
ls /mnt/root #是根
#2手写fstab配置文件
vi /mnt/root/etc/fstab
/dev/sda