磁盘管理

存储设备(块设备)的管理(硬盘 移动硬盘 U盘 光盘 软盘 阵列...)

块设备操作流程: 分区 格式化(文件系统格式) 挂载

fdisk 用于管理磁盘的分区。

  编辑分区表是危险操作,操作不当的话会造成无法访问分区,使数据丢失(数据还在磁盘上,并没有真正丢失,但是想访问它很难),一个安全的做法是先备份分区表到别的存储设备,然后再修改,这样就可以随时恢复原来的分区表
  sudo fdisk -l /dev/sda        <-- 列出块设备/dev/sda上面的分区表

备份分区表,以下方法任何一个都可以
1. 连同启动加载程序一起备份
  head -c 512 /dev/sda > /some/where/boot_sector.bin
2. 仅仅备份分区表
  head -c 510 /dev/sda | tail -c 64 > /some/where/partition_table.bin

恢复分区表(慎用)
    dd if=./mbr.txt of=/dev/sda bs=1 count=512

查看磁盘信息

从整体的角度上,硬盘接口分为IDE、SATA、SCSI和光纤通道四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。SATA是种新生的硬盘接口类型,

    sudo fdisk -l
        设备文件 /dev/sda
            sda     主机的第一块SATA硬盘
                s       硬盘类型(硬盘接口: SATA IDE  virtio 磁盘)
                    SATA,U盘,移动硬盘          s
                    IDE                      h
                    virtio 半虚拟化磁盘        v
                d       存储设备
                a       第一个块同类型的硬盘
                .
                e       第五块同类型的硬盘


            sdb     主机的第二块SATA硬盘
            hda     主机的第一块IDE硬盘
            vda     主机的第一块virtio 磁盘
            
            sda1    主机的第一块SATA硬盘的第一个分区
            sda2    主机的第一块SATA硬盘的第二个分区

        分区表 (MBR/GPT)
            BIOS -> MBR -> fdisk(mbr分区管理工具)
            UEFI -> GPT -> gdisk(gpt分区管理工具)

            mbr是现在最流行的一个分区模式
            gpt是以后的主流
            最大的区别: mbr稳定性高
                        gpt能使用2T以上的硬盘, 而mbr不行

            MBR     分区表规则
                硬盘的第一个逻辑块(扇区)用于存储MBR信息(512字节)
                MBR(512) = 启动代码 + 分区表(64)

                分区表(64字节)
                    一个分区信息占16字节, 最后可分4个分区, 称为主分区
                    扩展分区, 占用一个主分区位,用于扩展分区信息
                    逻辑分区, 在扩展分区内再继续划分的分区

个人分区方案(MBR)

            第一个主分区    50G     windows C盘
            第二个主分区    50G     黑苹果系统分区
            第三个主分区    4G      boot分区
            第四个主分区    扩展分区
                第一个逻辑分区  4G      交换分区
                第二个逻辑分区  50G     linux的家目录(/home) 个人数据存储
                第三个逻辑分区  30G     主linux系统的根分区(ubuntu)
                第四个逻辑分区  20G     从linux系统的根分区(centos)
                第五个逻辑分区  20G     测试linux系统的根分区
                ..
                最后一个逻辑分区    剩于空间    windows D盘

        个人分区方案(GPT)
            第一个分区  4G      ESP分区(boot分区)
            第二个分区  1M      兼容分区(BIOS)
            第三个分区  50G     windows 7 C盘
            第四个分区  4G      交换分区
            第五个分区  50G     linux的家目录(/home) 个人数据存储
            第六个分区  30G     主linux系统的根分区(ubuntu)
            第七个分区  20G     从linux系统的根分区(centos)
            第八个分区  20G     测试linux系统的根分区
            ...
            最后一个分区    剩于空间    windows D盘

        个人分区方案(GPT + LVM)
            第一个分区  4G      ESP分区(boot分区)
            第二个分区  1M      兼容分区(BIOS)
            第三个分区  50G     windows 7 C盘
            第四个分区  100G    LVM


    设置分区方案
        第一个分区  30G     cenots根分区        83
        第二个分区  30G     windows C盘         7
        第三个分区  4G      boot分区            83
        第四个分区  扩展分区
            第一个逻辑分区      4G      交换分区    82
            第二个逻辑分区      50G     /home       83
            第三个逻辑分区      30G     ubuntu      83
            第四个逻辑分区      20G     mint        83
            ...
            最后逻辑分区    剩于空间    windows D盘 7

分区管理

    sudo fdisk /dev/sda
        进入分区管理的交互界面
        l       列出已知分区类型
        m       获取帮助
        p       打印分区表
        d       删除分区
        q       退出
        w       写入mbr
        n       新建分区
            询问扩展分区(e)还是主分区(p)  (还有主分区位才会询问)
                选择扩展分区才要将剩于空间全部占完
            询问占用主分区位(必须选择默认值)
            访问新建分区的起始逻辑块(必须选择默认值)
            访问新建分区的结束逻辑块, 标识此分区的大小, 建议: +30G

        t       修改分区类型
            询问修改哪个分区的类型
            询问修改哪个类型 (L 可以查找分区类型, 再输入对应ID)
            
            创建扩展分区后,还需要创建逻辑分区,选择L 这样后面才可以格式化创建文件系统
  Partition type:
      p   primary (1 primary, 1 extended, 2 free)
      l   logical (numbered from 5)


​ 保存分区表之后,设备文件并没有对应生成, 生成对应的设备文件:
​ 方法一: reboot
​ 方法二: sudo partprobe

创建文件系统
    文件系统是用来管理文件的系统,在文件系统里面,数据以文件的形式。
    不过,存取磁盘里的数据,不一定需要文件系统,像swap 设备就没有文件系统。

    创建文件系统就是常说的:分区格式化 mkfs

    格式化boot分区:
        mkfs -t ext2 /dev/sda3

    格式化windows C盘
        mkfs.vfat /dev/sda2
            或
        mkfs.ntfs /dev/sda2 (很慢)
        windows下的文件系统fat32在linux里被识别为vfat
        
        / /boot 都是xfs文件系统  目前一般用xfs文件系统

centos 7 xfs

centos 6 ext4

centos 5 ext3

格式化home分区

        mkfs.ext4 /dev/sdb1
        
   格式化逻辑分区xfs文件系统
        mkfs.xfs /dev/sdb5 

挂载 mount

    查看当前挂载情况
        mount
            挂载源 on 挂载目标 type 挂载类型 (挂载选项)
        df -h 查看简单的挂载信息

    命令选项
        -t      指定挂载文件系统类型, 自动识别(可以省略)
        -o      指定挂载选项(因为有默认选项, 所以也可省略)

    挂载选项 (挂载选项可写多个,以逗号分隔)
        ro          只读
        rw          可读可写(默认)
        remount     重新挂载
        bind        绑定目录
        loop        使用loop块设备
        noauto      不开机自动挂载

挂载

        将ext2文件系统格式分区挂载到/disk/boot
            mount -t ext2 -o rw /dev/sda3 /disk/boot

        将vfat文件系统格式分区挂载到/disk/C
            mount -t vfat /dev/sda2 /disk/C

        将ntfs文件系统格式分区挂载到/disk/D
            mount.ntfs-3g /dev/sda2 /disk/D

            安装ntfs-3g   支持NTFS格式的磁盘,
                sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
                sudo yum install ntfs-3g  -y 

        将网络文件系统挂载到/mnt
            mount -t nfs 192.168.0.183:/soul /mnt

        将iso镜像文件挂载到/mnt
            mount -t iso9660 -ro loop /soul/images/centos.iso /yum

        将/soul绑定到/mnt(访问/mnt即访问/soul)
            mount -o bind /soul /mnt

将windos的共享文件挂载到linux中  启用smb服务。在控制面板->程序和功能->启动或关闭windows更能中勾选SMB的相关项,之后重启电脑即可

   mount -t cifs  //172.17.46.192/相关镜像文件2  /win/ -o user=Administrator,password=zx.yes
   
        重新挂载
            mount -o remount,rw /dev/sda1
                或
            mount -o remount,rw /

    取消挂载(PPP2)
        umount /mnt
        umount /dev/sda3

        强制取消挂载
            umount -l /mnt

交换分区

    swap的作用和配置方法
    内存不够用时,才会使用swap 设备
    查看内存和交换分区的使用量
        free -m
        fdisk -l 查看交换分区的磁盘位置
     /dev/sda2          526336     4720639     2097152   82  Linux swap / Solaris   

停用交换分区

        swapoff /dev/sda2

启用交换分区

        swapon /dev/sda2

    格式化交换分区 需要把交换分区停了才能格式化
        mkswap /dev/sda2

    linux的内存机制是先缓存大量的数据,看上去的系统在占用大量的内存, 但是
        这个只是linux系统的一种缓存机制, 加速下次的访问速度, 只要没有使用
        交换分区就代表内存没有被全部消耗
        测试系统消耗内存的好处

        生成一个1G的大文件
            dd if=/dev/zero of=2_2G.txt bs=1M count=1024
        清空缓存
            echo "3" | sudo tee /proc/sys/vm/drop_caches
        读取此文件并测试所消耗的时间:
            time cat 2_2G.txt > /dev/null
                real    0m4.477s
                user    0m0.008s
                sys     0m0.620s
                使用的时间是4.47S
        读取此文件并测试所消耗的时间:
            time cat 2_2G.txt > /dev/null
                real    0m0.163s
                user    0m0.002s
                sys     0m0.160s
                再次读取的时间是0.163S

开机自动挂载配置文件 /etc/fstab

    UUID=db6a4392-ccb0-41af-863f-4de76cad1c0a /    ext4  errors=remount-ro   0  1
    UUID=67a2f488-1421-495a-ada1-dc022c29d77d none swap  sw                  0  0

    挂载源 挂载目标 文件系统格式 挂载选项 dump备份 开机自检
    UUID=96A4-6194 /disk/C vfat defaults 0 0
    UUID=51c35f8c-c9dd-498e-9f05-203d6f931fa6 /disk/boot ext2 defaults 0 0
    UUID=c9edda7d-dbc2-443a-81a4-5a729fc9b27a none swap sw 0 0
    /disk/ubuntu-16.04.4-server-amd64.iso /opt iso9660 loop,ro 0 0

    挂载/etc/fstab配置里所有挂载条目: mount -a

    UUID: 分区唯一标识符
        设备名称会因硬盘变动而发生改变(删除中间分区 添加硬盘等)
        分区只要不格式化, 此分区UUID绝对唯一, 不会冲突

        查看块设备的UUID: sudo blkid  /dev/sda{1..2}
 /dev/sda1: UUID="0d1c509a-28d7-4f86-a900-ec04174a2613" TYPE="xfs" 
/dev/sda2: UUID="H2FW0i-snFz-Kmn7-gQp6-XZ6e-Nm2z-I1PEhV" TYPE="LVM2_member" 



查看已挂载磁盘使用情况:  df -h
树型结构查看所有硬盘分区表: lsblk

生成指定大小的空文件

    head -c 1G /dev/zero > swapfile

    dd if=/dev/zero of=./swapfile bs=1024 count=1024

加密分区

 安装: sudo yum install cryptsetup* -y(基本都已经安装好的)

创建加密分区

        得是一个新创建的分区, 正在使用或者使用过的分区不能加密
        sudo cryptsetup luksFormat /dev/sdb5
            询问是否继续的时候要输入YES,  yes/y 小写不行,会终止
            输入加密分区的密码, 不能忘记,忘记的话加密分区就无法再访问 不能少于8个字符,也不能太简单

    解密分区 (生成解密后的设备文件)
        sudo cryptsetup luksOpen /dev/sdb5 soul
            输入加密分区的密码
            这里的soul为自定义

    首次使用先格式化加密后的分区
        sudo mkfs -t ext4 /dev/mapper/soul

    挂载加密分区
        sudo mount /dev/mapper/soul /mnt

    对/mnt进行操作即是对加密分区进行操作

    取消挂载的加密分区
        sudo umount /dev/mapper/soul

    取消解密分区(释放解密后的设备文件)
        sudo cryptsetup luksClose soul
        
   取消解密分区后,如果想要再次挂载 /dev/sdb5 这个磁盘分区,  mount /dev/sdb5  /mnt 就挂载不了了。
只能先解密分区 (或者重新强制格式化,mkfs.xfs /dev/sdb5 -f )
    cryptsetup luksOpen /dev/sdb5 server1
    再次挂载加密分区
    mount /dev/mapper/server1  /mnt
    
    这时候会发现之前soul分区的内容还在,因为没有格式化
    
    取消挂载的加密分区
    umount /dev/mapper/server1
    
     当我们用完我们的加密分区后,就可以卸载它然后再锁住,这样数据就又会保护起来

我们要先卸载我们挂上去的分区,然后再锁住,如果不能锁住,可以尝试下把挂载目录删了


分区方案:
    /dev/sda1   30G     /           linux
    /dev/sda2   4G                  swap
    /dev/sda3   4G      /boot       linux
    /dev/sda4   1K                  extend
    /dev/sda5   50G     ubuntu      lvm
    /dev/sda6   50G     min-centos  lvm
    /dev/sda7   50G     mint        lvm

LVM

lvs模型图.png

LVM是Linux下对磁盘空间管理的一种方法(动态扩容/缩减空间)

安装LVM:

    sudo yum install lvm2 -y

物理卷(PV) 对应 硬盘分区 块设备

    创建pv之前要对分区进行格式化
    创建    pvcreate
        sudo pvcreate /dev/sdb5
    查看物理卷简单信息
        sudo pvs
    查看物理卷稍微详细一点的信息
        sudo pvscan
    查看物理卷的详细信息
        sudo pvdisplay
    更改    sudo pvchange
    删除    sudo pvremove

卷组(VG) 用于管理物理卷

    最好不要给/目录扩容,到时候锁减不行,因为目录一直在使用中,除非取消挂载,
    创建    vgcreate
        sudo vgcreate 卷组名 物理卷设备路径...
    查看    vgs vgscan vgdisplay
    删除    vgremove    卷组名
    更改    vgchange vgextend
        扩容卷组(增加物理卷)
            sudo vgextend vg1 /dev/sdb5

        缩减卷组(减少物理卷)
            sudo vgreduce vg1 /dev/sdb5

逻辑卷(LV) 在卷组之上划分 分区

   
   创建    lvcreate
        sudo lvcreate --name 逻辑卷名 --size 10G 卷组名
    查看    lvs lvscan lvdisplay
    删除    lvremove
    更改    lvchange lvextend

    扩容(lvextend)
        逻辑卷的大小一定要小于或者等于物理卷的大小
        第一步: 给home逻辑卷加10G空间
            lvresize -L +10G /dev/vg1/lv1

        第二步: 扩大文件系统的显示
            resize2fs /dev/vg1/lv1

        两步可以合成一步完成:
            lvresize -r -L +10G /dev/vg1/lv1

这时候家目录就已经增加了容量了

    缩减 (lvreduce)
        必须先取消挂载, 并且缩减剩于空间足够

            lvresize -r -L -10G /dev/vg1/lv1

首先把硬盘分区或者整块硬盘标记为一个物理卷(PV), 然后再创建一个卷组(VG),
把一个或多个物理卷加入卷组,最后对卷组进行分区,
每一个分区称为一个逻辑卷(LV)。

一、实施LVM存储

1、进入交互式界面后,创建新分区

#fdisk /dev/sdb

2、创建物理卷(pv)

#pvcreate /dev/sdb5

可使用pvs、pvdisplay查看

3、创建卷组(vg)

#vgcreate vg1 /dev/sdb5

可使用vgs、vgdisplay查看

4、创建逻辑卷(lv)

#lvcreate -n lv1 vg1 -L 5G

可使用lvs、lvdisplay查看

5、建立文件系统

根据需要创建不同类型的文件系统,例如ext4

#mkfs.ext4 /dev/vg1/lv1 
#mkdir /data                  //根下创建挂载目录
配置文件/etc/fstab中追加
/dev/vg1/lv1 /data ext4 defaults 0 0   //永久挂载
#mount -a                   //重新加载
#df -h                     //查看有没有挂载成功

mountlvs.png

二、 删除逻辑卷

1、卸载挂载点

#umount /data

2、删除逻辑卷

#lvremove /dev/vg1/lv1

3、删除卷组

#vgremove vg1

4、删除物理卷

#pvremove /dev/sdb5

三、扩展和缩减卷组

假如vg容量不够,需要新建分区-创建物理卷-扩展卷组

#fdisk /dev/sdb           //创建分区
#pvcreate /dev/sdb6        //创建物理卷
#vgextend vg1 /dev/sdb6     //扩展卷组
#vgs                //查看卷组大小

若想缩减卷组需要缩减卷组-缩减物理卷

#vgreduce vg1 /dev/sdb6   
#pvremove /dev/sdb6

四、扩展逻辑卷和文件系统

扩展逻辑卷后需根据文件系统类型进行扩展

#lvextend /dev/vg1/lv1 -r -L +10G  //将LV增加10G 
#xfs_growfs /dev/vg1/lv1    //xfs文件系统扩展方法
#resize2fs /dev/vg1/lv1     //ext4文件系统扩展方法

启动管理

mbr里的启动程序 - grub -> bootloader程序(启动内核并且传参)

centos7 -> grub2
ubuntu  -> grub
windows -> grub4dos

grub配置文件: /boot/grub2/grub.cfg

grub识别分区
    hd0             代表第一块硬盘
    hd0,msdos1      代表第一块硬盘的第一个分区
    hd1,gpt2        代表第二块硬盘的第二个分区

    第一块硬盘的第三个分区中boot目录的vmlinuz文件的grub路径
        (hd0,msdos3)/boot/vmlinuz

grub命令
    set     设置grub环境变量

        设置菜单等待显示风格(hidden代表隐藏)
            set timeout_style=menu

        设置菜单等待时间 (秒)
            set timeout=30

        设置grub环境的根分区
            set root='hd0,msdos1'

            如果设置了root环境变量, 访问第一块硬盘第一个分区boot目录下vmlinuz文件的路径
                /boot/vmlinuz

        设置grub默认进入操作系统条目
            set default=2

    menuentry   创建菜单项
        menuentry 'My Menu Options' {
            ...
        }

    linux       启动哪个内核
    initrd      启动哪个临时文件系统
    boot        启动系统 (grub命令行)


启动ubuntu系统的菜单的grub配置内容
    menuentry 'Ubuntu16.04.4' {
        set root='hd0,msdos1'
        linux /boot/vmlinuz-4.4.0-116-generic root=/dev/sda1
        initrd /boot/initrd.img-4.4.0-116-generic
    }
            或
    menuentry 'Ubuntu16.04.4' {
        linux (hd0,msdos1)/boot/vmlinuz-4.4.0-116-generic root=/dev/sda1
        initrd (hd0,msdos1)/boot/initrd.img-4.4.0-116-generic
    }


grub配置文件错误或丢失的效果, 开机进入提示 grub> 命令行:

set root=(hd0,1)
linux /boot/vmlinuz-4.4.0-130-generic root=/dev/sda1
    输入linux /boot/vmlinuz-再按TAB补全文件
initrd /boot/initrd.img-4.4.0-130-generic
boot

grub模块目录丢失的效果, 开机进入提示 grub-rescue> 命令行:
    前提: 已知grub目录在第一块硬盘的第一个分区下

set prefix=(hd0,1)/grub
    设置grub程序根目录(模块根目录)
set root=(hd0,1)
    设置grub环境的默认根分区, 设置/对应位置
insmod normal
    导入normal核心模块(菜单选项代码)
normal
    运行normal模块代码, 运行成功后进入grub菜单

centos系统上硬盘安装centos (依赖Lvm分区方案)

前提工作:
    sudo cp /soul/images/centos.iso /
    sudo cp /yum/isolinux/vmlinuz /yum/isolinux/initrd.img /


    /etc/grub2.cfg 追加内容:
        menuentry '----- CentOS 7 Install -----' {
            linux (hd0,1)/vmlinuz linux repo=hd:/dev/sda1:/
            initrd (hd0,1)/initrd.img
        }

如果在grub命令行输入命令则不需要修改grub配置文件
    grub命令行
        grub> linux (hd0,1)/vmlinuz linux repo=hd:/dev/sda1:/
        grub> initrd (hd0,1)/initrd.img
        grub> boot

重启电脑进入grub菜单选择CentOS 7 Install菜单项按回车

进入CentOS7安装界面会让用户选择以什么方式安装(http ftp nfs cdrom hard)
    选择硬盘安装 -> 选择镜像文件所在分区(/dev/sda1)

    注意: 选择安装的分区

ubuntu系统上硬盘安装mint19

前提工作:
    sudo mount /dev/sda6 /disk/data
    sudo chown $USER:$USER /disk/data -R

    wget http://3.3.3.1/iso/linuxmint-19-cinnamon-64bit.iso -O /disk/data/mint19.iso
        或
    wget http://3.3.3.9/iso/mint19.iso -O /disk/data/mint19.iso

    mount -o loop,ro /disk/data/mint19.iso /mnt

重启电脑进入grub命令行 (grub菜单界面按c进入grub命令行)
    set root=(hd0,6)
    loopback loop /mint19.iso
    set root=(loop)
    linux /casper/vmlinuz boot=capser iso-scan/filename=/mint19.iso --
    initrd /casper/initrd.lz
    boot

进入mint19的试用系统中
    按ctrl + alt + t 打开终端输入: sudo umount -l /isodevice
    点击桌面安装程序, 点击下一步, 其中进入分区选择
        boot分区 --> /dev/sda3          不要格式化
        home分区 --> /dev/up/home       不要格式化
        mint根分区 --> /dev/up/mint
        swap分区 --> /dev/up/swap

ubuntu系统上硬盘安装windows 7

前提:
    自己下载win7的ghost.gho文件, 复制到/dev/sda7(D盘)分区中
    把ghost.img和memdisk文件复制到/dev/sda6分区

    sudo mount /dev/sda6 /disk/data
    sudo mount 3.3.3.9:/kyo /mnt
    cp /mnt/tools/{ghost.img,memdisk} /disk/data/

重启电脑进入grub命令行
    set root=(hd0,6)
    linux16 /memdisk c=2000 h=4 s=36 floppy
    initrd16 /ghost.img
    boot

    进入ghost程序将win7的gho文件还原到C盘(/dev/sda2)

ghost完成之后再进入grub命令行
    set root=(hd0,2)
    chainloader +1
    boot

/boot 存储启动相关文件

建议/boot目录对应独立分区(必须是主分区 并且是ext2格式)

grub
    grub.cfg        配置文件
        丢失进入grub> 命令行

    i386-pc         grub的模块目录
        丢失进入grub rescue> 命令行


vmlinuz-4.4.0-116-generic       内核文件
initrd.img-4.4.0-116-generic    临时文件系统

修复grub引导程序(BIOS + MBR)

重启grub程序, 会自动将grub引导程序写入mbr并且固定在/boot目录下生成grub相关文件

    grub-install /dev/sda

ubuntu grub.cfg的自动生成

    update-grub

问题: 根分区完整的前提下, 只是引导程序或相关文件丢失导致引导不了系统

    借助第三方linux系统来进行修复 (U盘 网络 光盘)

    首先进入第三方设备提供的linux系统:

        1. 挂载修复系统的根分区
            mount /dev/sda1 /mnt

        2. 挂载boot分区到/mnt/boot目录下
            mount /dev/sda3 /mnt/boot/

        3. 将内核相关目录挂载(proc sys dev tmp)
            mount -o bind /proc /mnt/proc/
            mount -o bind /sys /mnt/sys/
            mount -o bind /dev /mnt/dev/
            mount -o bind /tmp /mnt/tmp/

        4. 切换到ubuntu系统(进入ubuntu的系统)
            chroot /mnt

        5. 重装grub
            grub-install /dev/sda

Grub引导其它系统

前提: 将mint centos ubuntu的启动文件全部统一放在boot分区(/dev/sda3)

grub        ubuntu/mintw
    (hd0,3)/grub/grub.cfg

grub2       centos7
    (hd0,3)/grub2/grub.cfg

centos7:
    initramfs-3.10.0-862.el7.x86_64.img
    vmlinuz-3.10.0-862.el7.x86_64

mint:
    initrd.img-4.15.0-20-generic
    vmlinuz-4.15.0-20-generic

ubuntu:
    initrd.img-4.4.0-116-generic
    vmlinuz-4.4.0-116-generic

-----------------------------------------------------------------------
grub命令行启动ubuntu:
    linux (hd0,3)/vmlinuz-4.4.0-116-generic root=/dev/sda1 quiet splash
    initrd (hd0,3)/initrd.img-4.4.0-116-generic
    boot

grub命令行启动mint:
    linux (hd0,3)/vmlinuz-4.15.0-20-generic root=/dev/mapper/up-mint quiet splash
    initrd (hd0,3)/initrd.img-4.15.0-20-generic
    boot

grub命令行启动centos:
    linux (hd0,3)/vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/up-centos quiet splash
    initrd (hd0,3)/initramfs-3.10.0-862.el7.x86_64.img
    boot

--------------------------------------------------------------------------

grub.cfg配置菜单

        #  kyo grub config
    
        insmod all_video
          insmod gfxterm
          insmod gettext
        insmod lvm
        insmod part_msdos
        insmod ext2
        insmod exfat
        insmod iso9660
        insmod loopback
        insmod jpeg
        insmod png
        insmod cryptodisk
    
         set gfxmode=auto
          set locale_dir=$prefix/locale
          set lang=zh_CN
        set timeout_style=menu
        set timeout=5
        set default=0
    
        background_image /boot/grub/bg.jpG
    
        menuentry 'Ubuntu 16.04' {
            linux (hd0,3)/vmlinuz-4.4.0-116-generic root=/dev/sda1 quiet splash
            initrd (hd0,3)/initrd.img-4.4.0-116-generic
        }
    
        menuentry 'Mint 19' {
            linux (hd0,3)/vmlinuz-4.15.0-20-generic root=/dev/mapper/up-mint quiet splash
            initrd (hd0,3)/initrd.img-4.15.0-20-generic
        }
    
        menuentry 'CentOS 7' {
            linux (hd0,3)/vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/up-centos quiet splash
            initrd (hd0,3)/initramfs-3.10.0-862.el7.x86_64.img
        }
    
        menuentry 'Window 7' {
            set root=(hd0,2)
            chainloader +1
        }
    
        menuentry 'CentOS 7 Install' {
            set root=(hd0,6)
            linux /vmlinuz linux repo=hd:/dev/sda6:/
            initrd /initrd.img
        }
    
        menuentry 'Mint 19 Install' {
            set root=(hd0,6)
            loopback loop /mint19.iso
            set root=(loop)
            linux /casper/vmlinuz boot=casper iso-scan/filename=/mint19.iso quiet splash --
            initrd /initrd.img
        }
    
        menuentry 'Ghost' {
            set root=(hd0,6)
            linux16 /memdisk c=2000 h=4 s=36 floppy
            initrd /ghost.img
        }
    
        menuentry '重启' {
            reboot
        }
    
        menuentry '关机' {
            halt --no-apm
        }
Last modification:February 14th, 2020 at 04:09 am
如果觉得我的文章对你有用,请随意赞赏