linux之启动过程与管理

启动过程:
    通电 -> 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
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值