• 如何给一块新硬盘安装grub,让它成为一个只有一个内核的系统


    1)先关机
    2)添加一块硬盘
    3)将硬盘分区,/dev/sdb1为boot分区,/dev/sdb2为swap分区, /dev/sdb3为根分区
    4)调整/dev/sdb2的分区类型为82,指定为swap分区
    5)给/dev/sdb1、/dev/sdb3创建ext4创建文件系统,给/dev/sdb2创建swap文件系统
    mkfs -t ext4 /dev/sdb1
    mkfs -t ext4 /dev/sdb3
    mkswap /dev/sdb2
    6)在/mnt下创建boot目录
    mkdir /mnt/boot
    7)挂载boot分区
    mount /dev/sdb1 /mnt/boot
    8)使用grub-install工具安装grub
    grub-install --root-directory=/mnt /dev/sdb
    9)将/boot/目录下的vmlinuz、initramfs 拷贝到 /mnt/boot目录下
    cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz
    cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img
     
    10)在/mnt下创建一个根挂载点,将根分区挂载
    mkdir /mnt/root
    mount /dev/sdb3 /mnt/root
     
    11)先删除根下的lost+found目录, 再创建根下的结构
    rm -fr /mnt/root/lost+found
    cd /mnt/root/
    mkdir bin boot dev etc home lib lib64 media mnt opt proc root sbin srv sys tmp usr var
    12)将bash程序和ls程序拷贝到/mnt/boot/bin目录下
    cp /bin/bash /mnt/root/bin/
    cp /bin/ls /mnt/root/bin/
    13)使用ldd命令查看bash程序和ls程序所依赖的C库接口
    ldd /bin/bash
    ldd /bin/ls
     
    14)再将bash程序 和 ls程序所依赖的库拷贝到/mnt/root/lib64/目录下(从第二个库文件开始拷贝)
    cp /lib64/libtinfo.so.5 /mnt/root/lib64/
    cp /lib64/libdl.so.2 /mnt/root/lib64/
    cp /lib64/libc.so.6 /mnt/root/lib64/
    cp /lib64/ld-linux-x86-64.so.2 /mnt/root/lib64/
     
    cp /lib64/libselinux.so.1 /mnt/root/lib64/
    cp /lib64/librt.so.1 /mnt/root/lib64/
    cp /lib64/libcap.so.2 /mnt/root/lib64/
    cp /lib64/libacl.so.1 /mnt/root/lib64/
    cp /lib64/libc.so.6 /mnt/root/lib64/
    cp /lib64/libdl.so.2 /mnt/root/lib64/
    cp /lib64/ld-linux-x86-64.so.2 /mnt/root/lib64/
    cp /lib64/libpthread.so.0 /mnt/root/lib64/
    cp /lib64/libattr.so.1 /mnt/root/lib64/
     
    15)编辑/mnt/boot/grub/grub.conf文件, 添加如下内容
    default=0
    timeout=5
    hiddenmenu
    title CentOS 6 yhy
    root (hd0,0)
    kernel /vmlinuz ro root=/dev/sda3 selinux=0 init=/bin/bash
    initrd /initramfs.img
     
    16)先切换根试一试
    chroot /mnt/root
     
    17)如果在本机上做根切换没有问题,那么再创建一个新的虚拟机,这个新的虚拟机的硬盘使用刚刚创建的硬盘
    18)如果在启动后,可以使用ls命令显示根下的目录结构,说明grub安装完毕,这就是一个没有应用程序的内核
  • 相关阅读:
    [ZJOI2007]时态同步 题解
    Xposed 在android 6.0上报couldn't load class,找不到xposed_init中配置的入口类
    微信小程序http 400问题
    在Mac上 python中使用tesseract OCR (Pytesser) 识别图片中的文字
    微信小游戏跳一跳简单手动外挂(基于adb 和 python)
    第一个微信小程序踩的几个小坑
    android studio/Intellij IDEA(MAC OSX)中android模拟器无法启动的一种原因
    【转载】word2vec原理推导与代码分析
    HTTP Get Post究竟有哪些区别
    初试kotlin:用Kotlin开发桌面/CommandLine 工具
  • 原文地址:https://www.cnblogs.com/liu1026/p/7498079.html
Copyright © 2020-2023  润新知