启动过程:
通电 -> BIOS -> MBR -> 执行启动代码(Grub) -> 读取/boot/grub/grub.conf(选择启动的操作系统)
CentOS启动流程:
启动内核
-> 挂载临时文件系统(initrd.img 内存操作系统)
-> 根据grub传的参数去挂载硬盘根分区
-> /etc/init/rcS.conf 初始化操作系统配置
-> /etc/inittab 确定操作系统的运行级别
-> /etc/rc.d/rc.sysinit 操作系统初始化
-> /etc/init/rc.conf 启动对应级别的服务程序
-> /etc/rc.d/rc5.d/*
-> /etc/fstab 用户自定义开机挂载配置
-> /etc/rc.d/rc.local 用户自定义启动脚本(文本界面)
-> /etc/init/prefdm.conf 启动图形界面
/etc/X11/xinit/xinitrc.d/* 图形界面的配置脚本
-> /etc/profile 登录成功针对用户进行初始配置
-> /etc/profile.d/*
-> ~/.bash_profile 用户登录成功,马上会执行对应登录用户的配置脚本
-> ~/.bashrc shell启动时执行的配置脚本
GRUB1.x:
windows安装grub启动项: easyBCD.exe (grub4dos)
不支持ntfs格式
GRUB启动ubuntu安装镜像:
前提:
ubuntu光盘镜像放在D盘
D盘挂载到/disk/D
fat32格式的分区挂载/disk/fat32
sudo -i
cd /disk/D
mount -o loop ubuntu-16.04-desktop-amd64.iso /mnt
cp /mnt/casper/vmlinuz.efi /mnt/casper/initrd.lz /disk/fat32/
cp ubuntu-16.04-desktop-amd64.iso /disk/fat32/ubuntu16.04.iso
vim /boot/grub/grub.conf
以下内容追加到grub.conf配置文件后:
title ubuntu install
root (hd0,10)
kernel /vmlinuz.efi boot=casper iso-scan/filename=/ubuntu16.04.iso --label live-install
initrd /initrd.lz
重启进入ubuntu安装系统:
1. 打开终端(ctrl + alt + t)
sudo umount -l /isodevice
2. 选择已分好的分区作为根分区
GRUB启动Centos6.7安装镜像:
sudo -i
mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /mnt
cp /mnt/isolinux/vmlinuz /disk/fat32/centos_vmlinuz
cp /mnt/isolinux/initrd.img /disk/fat32/centos_initrd.img
cp /mnt/images /disk/fat32/ -rf
cp CentOS-6.7-x86_64-bin-DVD1.iso /mnt/
以下内容追加到grub.conf配置文件里:
title CentOS Install
root (hd0,10)
kernel /centos_vmlinuz
initrd /centos_initrd.img
GRUB启动Ghost:
sudo -i
cp memdisk ghost.img /boot/
以下内容追加到grub.conf配置文件里:
title Ghost
root (hd0,5)
kernel /boot/memdisk c=2000 s=36 h=4 floppy
initrd /boot/ghost.img
GRUB版本:
centos 0.97 只识别fat32与centos格式化的分区
windows grub4dos 支持ntfs格式
EasyBCD 安装grub, 只安装到windows的启动程序中, 不会破坏MBR的启动程序
ubuntu grub2 支持ntfs iso9660等格式
grub 菜单: 选择要启动的操作系统
上下键可以选择要启动的操作系统, 按回车或方向 右键启动系统
选择可启动操作系统的条目,按e可以进行编辑启动选项
编辑完成后按b启动此操作系统(非grub2版本)
GRUB2版本按F10或ctrl + x启动此操作系统
编辑完成后不能回到主菜单,回到主菜单刚才的编辑全部失效
GRUB识别分区:
(hd0,0)
hd0 代表第一块硬盘
,0 代表第一块硬盘的第一个分区
从0开始计数, GRUB2版本从1开始 计数
grub 命令行的通用命令:
root 选择grub根分区
非GRUB2版本: root (hd0,0)
GRUB2版本: set root='(hd0,1)'
kernel 选择要启动操作系统的内核文件 (非GRUB2版本)
linux 选择要启动操作系统的内核文件(GRUB2版本)
initrd 选择临时文件系统文件
boot 手动启动操作系统(依赖linux/initrd的设置)
rootnoverify (hd0,0) 非GRUB2版本选择windows C盘
chainloader +1 读取当前grub选择的根的第一逻辑块
cat 读取文件内容
ls 列表目录里文件
GRUB2 命令行:
insmod 加载grub模块
help 获取grub2当前命令列表
loopback 加载ISO文件
set root=(hd0,5)
loopback loop /ubuntu.iso
set root=(loop)
linux /casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso --label live-install
initrd /casper/initrd.lz
boot
GRUB2抢修模式:
抢修模式效果: 开机启动进入grub rescue>提示符
能进抢修模式的原因, grub程序被破坏(MBR的启动程序被破坏, grub与根分区的关联关系出现问题)
解决办法: 重新安装GRUB
sudo grub-install /dev/sda
抢修模式下
前提硬盘上有好的GRUB2操作系统: (hd0,8)
set prefix=(hd0,8)/boot/grub
set root=(hd0,8)
insmod normal
normal
进入操作系统的抢修模式(临时的Linux操作系统):
提示硬盘已有Linux操作系统: (hd0,6)
mount /dev/sda6 /mnt
mount -o bind /dev/ /mnt/dev
mount -o bind /proc/ /mnt/proc
mount -o bind /sys/ /mnt/sys
mount -o bind /tmp/ /mnt/tmp
chroot /mnt
grub-install /dev/sda
ubuntu安装根加密:
进入ubuntu安装系统的终端
sudo -i
如果没有分好区,可以在命令行通过fdisk或gdisk来分区
cryptsetup luksFormat /dev/sda8
输入YES,再输入保护密码
cryptsetup luksOpen /dev/sda8 ms
输入密码解开加密分区
开始安装,到了选择根分区选择加密分区,并且格式化(/dev/mapper/ms)
安装到最后选择不要重启, 回到命令行
sudo -i
mount /dev/mapper/ms /mnt
mount -o bind /dev/ /mnt/dev
mount -o bind /proc/ /mnt/proc
mount -o bind /sys/ /mnt/sys
mount -o bind /tmp/ /mnt/tmp
chroot /mnt
将以下内容写入/etc/crypttab文件中:
ms UUID=/dev/sda8的UUID none luks
写完文件后执行命令: update-initramfs -u
重启电脑
ubuntu grub启动项修改:
menuentry 'centos6.7' {
set root='(hd0,6)'
linux /boot/vmlinuz-... root=/dev/sda6
initrd /boot/initramfs...
}
menuentry 'ubuntu install' {
set root=(hd0,5)
loopback loop /ubuntu.iso
set root=(loop)
linux /casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso quiet splash --
initrd /casper/initrd.lz
}
menuentry 'centos install' {
set root=(hd0,5)
loopback loop /centos.iso
set root=(loop)
linux /isolinux/vmlinuz
initrd /isolinux/initrd.img
}
menuentry 'ghost' {
set root='(hd0,5)'
linux16 /memdisk c=2000 s=36 h=4 floppy
initrd16 /ghost.img
}
通电 -> BIOS -> MBR -> 执行启动代码(Grub) -> 读取/boot/grub/grub.conf(选择启动的操作系统)
CentOS启动流程:
启动内核
-> 挂载临时文件系统(initrd.img 内存操作系统)
-> 根据grub传的参数去挂载硬盘根分区
-> /etc/init/rcS.conf 初始化操作系统配置
-> /etc/inittab 确定操作系统的运行级别
-> /etc/rc.d/rc.sysinit 操作系统初始化
-> /etc/init/rc.conf 启动对应级别的服务程序
-> /etc/rc.d/rc5.d/*
-> /etc/fstab 用户自定义开机挂载配置
-> /etc/rc.d/rc.local 用户自定义启动脚本(文本界面)
-> /etc/init/prefdm.conf 启动图形界面
/etc/X11/xinit/xinitrc.d/* 图形界面的配置脚本
-> /etc/profile 登录成功针对用户进行初始配置
-> /etc/profile.d/*
-> ~/.bash_profile 用户登录成功,马上会执行对应登录用户的配置脚本
-> ~/.bashrc shell启动时执行的配置脚本
GRUB1.x:
windows安装grub启动项: easyBCD.exe (grub4dos)
不支持ntfs格式
GRUB启动ubuntu安装镜像:
前提:
ubuntu光盘镜像放在D盘
D盘挂载到/disk/D
fat32格式的分区挂载/disk/fat32
sudo -i
cd /disk/D
mount -o loop ubuntu-16.04-desktop-amd64.iso /mnt
cp /mnt/casper/vmlinuz.efi /mnt/casper/initrd.lz /disk/fat32/
cp ubuntu-16.04-desktop-amd64.iso /disk/fat32/ubuntu16.04.iso
vim /boot/grub/grub.conf
以下内容追加到grub.conf配置文件后:
title ubuntu install
root (hd0,10)
kernel /vmlinuz.efi boot=casper iso-scan/filename=/ubuntu16.04.iso --label live-install
initrd /initrd.lz
重启进入ubuntu安装系统:
1. 打开终端(ctrl + alt + t)
sudo umount -l /isodevice
2. 选择已分好的分区作为根分区
GRUB启动Centos6.7安装镜像:
sudo -i
mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /mnt
cp /mnt/isolinux/vmlinuz /disk/fat32/centos_vmlinuz
cp /mnt/isolinux/initrd.img /disk/fat32/centos_initrd.img
cp /mnt/images /disk/fat32/ -rf
cp CentOS-6.7-x86_64-bin-DVD1.iso /mnt/
以下内容追加到grub.conf配置文件里:
title CentOS Install
root (hd0,10)
kernel /centos_vmlinuz
initrd /centos_initrd.img
GRUB启动Ghost:
sudo -i
cp memdisk ghost.img /boot/
以下内容追加到grub.conf配置文件里:
title Ghost
root (hd0,5)
kernel /boot/memdisk c=2000 s=36 h=4 floppy
initrd /boot/ghost.img
GRUB版本:
centos 0.97 只识别fat32与centos格式化的分区
windows grub4dos 支持ntfs格式
EasyBCD 安装grub, 只安装到windows的启动程序中, 不会破坏MBR的启动程序
ubuntu grub2 支持ntfs iso9660等格式
grub 菜单: 选择要启动的操作系统
上下键可以选择要启动的操作系统, 按回车或方向 右键启动系统
选择可启动操作系统的条目,按e可以进行编辑启动选项
编辑完成后按b启动此操作系统(非grub2版本)
GRUB2版本按F10或ctrl + x启动此操作系统
编辑完成后不能回到主菜单,回到主菜单刚才的编辑全部失效
GRUB识别分区:
(hd0,0)
hd0 代表第一块硬盘
,0 代表第一块硬盘的第一个分区
从0开始计数, GRUB2版本从1开始 计数
grub 命令行的通用命令:
root 选择grub根分区
非GRUB2版本: root (hd0,0)
GRUB2版本: set root='(hd0,1)'
kernel 选择要启动操作系统的内核文件 (非GRUB2版本)
linux 选择要启动操作系统的内核文件(GRUB2版本)
initrd 选择临时文件系统文件
boot 手动启动操作系统(依赖linux/initrd的设置)
rootnoverify (hd0,0) 非GRUB2版本选择windows C盘
chainloader +1 读取当前grub选择的根的第一逻辑块
cat 读取文件内容
ls 列表目录里文件
GRUB2 命令行:
insmod 加载grub模块
help 获取grub2当前命令列表
loopback 加载ISO文件
set root=(hd0,5)
loopback loop /ubuntu.iso
set root=(loop)
linux /casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso --label live-install
initrd /casper/initrd.lz
boot
GRUB2抢修模式:
抢修模式效果: 开机启动进入grub rescue>提示符
能进抢修模式的原因, grub程序被破坏(MBR的启动程序被破坏, grub与根分区的关联关系出现问题)
解决办法: 重新安装GRUB
sudo grub-install /dev/sda
抢修模式下
前提硬盘上有好的GRUB2操作系统: (hd0,8)
set prefix=(hd0,8)/boot/grub
set root=(hd0,8)
insmod normal
normal
进入操作系统的抢修模式(临时的Linux操作系统):
提示硬盘已有Linux操作系统: (hd0,6)
mount /dev/sda6 /mnt
mount -o bind /dev/ /mnt/dev
mount -o bind /proc/ /mnt/proc
mount -o bind /sys/ /mnt/sys
mount -o bind /tmp/ /mnt/tmp
chroot /mnt
grub-install /dev/sda
ubuntu安装根加密:
进入ubuntu安装系统的终端
sudo -i
如果没有分好区,可以在命令行通过fdisk或gdisk来分区
cryptsetup luksFormat /dev/sda8
输入YES,再输入保护密码
cryptsetup luksOpen /dev/sda8 ms
输入密码解开加密分区
开始安装,到了选择根分区选择加密分区,并且格式化(/dev/mapper/ms)
安装到最后选择不要重启, 回到命令行
sudo -i
mount /dev/mapper/ms /mnt
mount -o bind /dev/ /mnt/dev
mount -o bind /proc/ /mnt/proc
mount -o bind /sys/ /mnt/sys
mount -o bind /tmp/ /mnt/tmp
chroot /mnt
将以下内容写入/etc/crypttab文件中:
ms UUID=/dev/sda8的UUID none luks
写完文件后执行命令: update-initramfs -u
重启电脑
ubuntu grub启动项修改:
menuentry 'centos6.7' {
set root='(hd0,6)'
linux /boot/vmlinuz-... root=/dev/sda6
initrd /boot/initramfs...
}
menuentry 'ubuntu install' {
set root=(hd0,5)
loopback loop /ubuntu.iso
set root=(loop)
linux /casper/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu.iso quiet splash --
initrd /casper/initrd.lz
}
menuentry 'centos install' {
set root=(hd0,5)
loopback loop /centos.iso
set root=(loop)
linux /isolinux/vmlinuz
initrd /isolinux/initrd.img
}
menuentry 'ghost' {
set root='(hd0,5)'
linux16 /memdisk c=2000 s=36 h=4 floppy
initrd16 /ghost.img
}