(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. Contract Helper

    using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Que ...

  2. python从Excel中提取邮箱

    从各个城市的律师协会去爬取的律师的招聘信息,可是邮箱在招聘简介里面,所有需要写个脚本去提取邮箱 import pandas as pd import re regex = r"([-_a-z ...

  3. python教程(七)·字典

    本文介绍本系列教程最后一个数据结构--字典 在现实生活中,查英语字典的时候,我们通常根据单词来查找意思.而python中的字典也是类似的,根据特定的 "键"(单词)来查找 &quo ...

  4. node.js(二)

    今天我们学习如何运行起来一个项目,我还不会新建项目,所以我们打开一个小伙伴创建的项目,我用的开发工具是vscode 选择项目所在文件夹就好了. 打开后是这样子的 我们还要安装一下npm, 在这里安装, ...

  5. java入门---运算符&算术运算符&自增自减运算符&关系运算符&位运算符

        计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 ...

  6. 20155234 2610-2017-2第九周《Java学习笔记》学习总结

    20155234第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...

  7. echarts设置小图标位置

    // <!-- 左上角小图标 --> toolbox: { show : true, // orient: 'horizontal', // 布局方式,默认为水平布局,可选为: // // ...

  8. 【LG5019】[NOIP2018]道路铺设

    [LG5019][NOIP2018]道路铺设 题面 洛谷 题解 \(NOIP\) 抄 \(NOIP\)差评 设当前做到了位置\(i\) 且\(h_i\) \(-\) \(h_i\)\(_+\)\(_1 ...

  9. Mybatis传递参数的三种方式

    第一种: Dao层使用@Param注解的方法 VersionBox getVersionByVersionNumAndVersionType(@Param("versionNum" ...

  10. 【MySQL函数】replace()函数

    1.replace()函数 语法:replace(a,b,c) a的b部分被c替换 案例:select replace(abcde,bcd,123)-- 结果a123e