(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安装完毕,这就是一个没有应用程序的内核

如何给一块新硬盘安装grub,让它成为一个只有一个内核的系统的更多相关文章

  1. linux服务器添加一块新硬盘不用重新启动机器的操作

    Linux系统添加一块新硬盘不用关闭系统即可加载硬盘信息的操作 因之前换过硬盘重装系统,硬盘上的数据没有拷贝出来,开发人员问我要备份,炸了.我只好联系机房让他把之前换掉的硬盘插回服务器.但是插好之后f ...

  2. [笔记] Ubuntu机器添加新硬盘安装流程

    SSD虽然快,但是容量不够用,买了块希捷4TB的机械硬盘,准备给台机扩容. 安装环境 OS: Ubuntu 18.04 安装新硬盘 问了客服,原来这款机箱已经带了硬盘滑槽,不需要固定螺钉了. 买了SA ...

  3. 为linux添加一块新硬盘并分区

    一---如何增加一块硬盘1:虚拟机添加硬盘2:分区3:格式化4:挂载5:设置可以自动挂载 1---设置里面 2---分区命令 fdisk /dev/sdb开始分区m显示命令列表p显示磁盘分区 同fdi ...

  4. linux不重启挂载磁盘安装grub

    挂载.分区.grub 通过给一块新磁盘安装grub回顾磁盘挂载.分区文件系统创建等操作: 该实验基于(CtonOS6.8:kernel:2.6.32-642.15.1.el6.x86_64) 1.通过 ...

  5. CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)

    1.挂载fat或者fat32分区的U盘 如果是用VM安装的linux,在vm里挂载U盘有两个前提: 第一,主机里的service要启动: 第二,U盘是连接到虚拟机,而不是主机,需要确认这点: 2.使用 ...

  6. CentOS系统在不重启的情况下为虚拟机添加新硬盘

    一.概述 用过虚拟机的都知道,如果在系统运行的时候去给虚拟机添加一块新设备,比如说硬盘,系统是读取不到这个新硬盘的,因为系统在启动的时候会去检测硬件设备.但是我们也可能会遇到这样的情况,比如正在运行比 ...

  7. iATKOS v7硬盘安装教程(硬盘助手+变色龙安装版)

    这是作者:Tong 写的一篇安装教程 首先感谢:wowpc制作的变色龙安装版.iATKOS作者以及硬盘安装助手作者 前言:现在时代在进步,系统同样也在进步,在以前要在PC上整个Mac是很痛苦的事情,就 ...

  8. RHEL7虚拟机中不重启的情况下加新硬盘及扩展根分区容量

    在VMware中添加一块新的5G硬盘 显示当前分区 # fdisk -l 通常在你在虚拟机中添加一块新硬盘时,你可能会看到新硬盘没有自动加载.这是因为连接到硬盘的SCSI总线需要重新扫描来使得新硬盘可 ...

  9. linux硬盘挂载-新硬盘挂载和扩容硬盘挂载

    这里对当前我实际操作后的两种硬盘挂载进行整理: 第1种是直接添加一块新硬盘,然后进行挂载. 第2种是对硬盘进行扩容后,对扩容后的空间进行分区再进行挂载. [内容为参考网上资料,再加自已实际操作情况进行 ...

随机推荐

  1. 电竞大数据平台 FunData 的系统架构演进

      电竞大数据时代,数据对比赛的观赏性和专业性都起到了至关重要的作用.同样的,这也对电竞数据的丰富性与实时性提出了越来越高的要求. 电竞数据的丰富性从受众角度来看,可分为赛事.战队和玩家数据:从游戏角 ...

  2. 树莓派3B+学习笔记:11、查看硬件信息

    1.查看CPU信息 cat /proc/cpuinfo 查看最后三行 如果只想查看最后三行,也可使用这个命令 /proc/cpuinfo lscpu 2.查看树莓派型号 cat /proc/devic ...

  3. 树莓3B+_挂载硬盘

    前面参考:  http://www.cnblogs.com/xiaowuyi/p/4051238.html 插上硬盘,查看状态 root@raspberrypi:/home/pi# sudo fdis ...

  4. 智能家居系统 Home Assistant 系列 --介绍篇

    一. HomeAssistant 是什么? HomeAssistant是构建智慧空间的神器.是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation).群组化 ...

  5. Git 创建并管理局域网仓库

    Git 作为当前比较流行的代码管理工具,可以实现多人协作,不同版本代码管理. 本文内容基于Ubuntu. 0. 配置git信息 git config --global user.name XXX # ...

  6. 20155210潘滢昊 2016-2017-2 《Java程序设计》第4周学习总结

    20155210 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 extends:单一继承. 抽象方法.抽象类: abstract:Java中有抽象方法的类一 ...

  7. 20155216 2016-2017-2 《Java程序设计》第三周学习总结

    教材学习内容总结 区分基本类型与类类型 类类型是自己定义产生的,基本类型是long,int,double等类型. 在类的定义过程中,可直接用class XXX {}对每个序定义的值域成员进行定义.这样 ...

  8. 虚拟机与Linux

    VirtualBox与Ubuntu的下载 对于VirtualBox的下载,网络上的资源非常之多,并且软件也并不是很大,所以并没有耗费很多时间.但是对于Ubuntu的下载来说,一个操作系统,正版的下载肯 ...

  9. 17、JAVA多线程和并发基础面试问答

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  10. php引用&使用笔记

    引用与赋值是两个概念:引用是共用同一个内存地址,一个改变其他也会变,赋值是另外开辟内存空间,一个改变其他不会变 一个简单例子: $a=123; //$a开辟一个内存空间存储123 $b=&$a ...