磁盘分区

简介:

我们都知道要对磁盘进行分区,但是为什么要进行分区呢?当然有很多好处啦!接下来我们就说道说道:1.优化I/O性能 

      2.实现磁盘空间配额限制
      3. 提高修复速度
      4. 隔离系统和程序
      5. 安装多个OS
      6. 采用不同文件系统

有两种分区方式:MBR和GPT  

MBR:使用32位位表示扇区数 , 分区不超过2T, 4 个主分区;3 主分区+1 扩展(N 个逻辑分区)

GPT:支持128个分区,使用64 位 .使用128 位UUID 表示磁盘和分区。 

fdisk和parted都可以对磁盘进行分区,但是两者又有不同之处。

fdisk 创建MBR分区(disk类似于fdisk,但创建GPT分区)

      p 分区列表
      t 更改分区类型
      n 创建新分区
      d  删除分区
      w 保存并退出
      q 不保存并退出

fdisk /dev/sdX  进行分区(fdisk属于标准输入)

wKioL1mYC4nBRr9qAAB7divrpkQ049.png


wKioL1mYHBGCgIXKAADjDaqBbYg826.png

wKioL1mYJuaj8iHIAAAwls1ndpI857.png

fdisk -l  查看分区

如果只是这样用lsblk查看设备时,分区表中并没有新建的分区,

wKiom1mYKgLiAUKzAADTeVKmn2A658.png

所以要通知内核重新读取硬盘分区表

进行如下操作:

wKiom1mYKmaTaOtZAACSakuj9fw755.png

                    centos7:partprobe [/dev/DEVICE]

                    centos6:   partx -a /dev/DEVICE
                                    kpartx -a /dev/DEVICE -f: force

                                    删除分区用
                                    partx -d --nr M-N /dev/DEVICE

注意:分完区一定要输入w进行保存,否则分区表中不会出现新建的区


parted高级分区操作,是一个可以分区并进行分区调整的工具,它可以创建,破坏,移动,复制,调整大小等等。创建GPT分区。

parted命令

               parted /dev/sdX  对磁盘进行分区
                          mklabel msdos/gpt 创建卷标
                          help帮助

                          mkpart 创建分区


parted分为两种模式:交互模式和命令行模式

交互模式类似于fdisk  语法:parted [option] device

命令模式:可以直接在命令行下对磁盘进行操作,比较适合编程操作   语法:parted [option] device command.  如下图所示

parted /dev/sdX mkpart primary 1 1000

wKiom1mYK0PypptqAABk-c9KRuw037.png

操作完成后直接写入硬盘。


习题

  1. 查询命令java来自于哪个rpm包

wKioL1mYM3PgubrZAADAF9yT_oU654.png

wKioL1mYMzvhTLZ2AAAo7t84mOA310.png

2.写一个通过fdisk/parted自动分区的脚本,会对一个空硬盘/dev/sdb进行分区,增加一个大小为1G的主分区。

这道题如果不写脚本的话还好做,但一写脚本就挺麻烦的,要考虑的情况太多。小编确实考虑得没别人全,借鉴一下别人的,不得不说考虑的太周全了,佩服佩服!

答案:

     read -p "please input diskname (/dev/sd*):" disk;            静默输入要分区的硬盘
   ( [[ "$disk" =~ ^/dev/sd. ]] && fdisk -l $disk &> /dev/null)||exit 1  判断输入的磁盘名是否符合 
    type=`fdisk -l $disk |grep "Disk label type"`  取出磁盘的分区类型,赋值给变量
    a=`ls ${disk}?|wc -l`     取出分区数
    b=`fdisk -l /dev/sdb|tail -n $a`   列出所有的分区

if echo "$type"|grep "\<gpt\>";then
         echo -e"n\np\n1\n\n+1G\nw\n"|gdisk $disk
   else
         if echo "$b"|grep "\<Extended\>" &> /dev/null;then   
            if echo "$b"|head -3|grep "\<Extended\>" ;then  判断主分区是否少于3个,列出前三行信息,有extend则说明主分区少于三个,建一个默认的主分区
                     echo -e"n\n\n\n\nw\n"|fdisk $disk
            else
                   echo -e "n\n\n+1G\nw\n"|fdisk $disk  主分区是3个的话新建一个逻辑分区

               fi
         else
             if [ "$a" -lt 3 ];then 判断主分区是否少于3个,是的话建一个1G的主分区
                   echo -e "n\np\n1\n\n+1G\nw\n"|fdisk $disk
            elif [ "$a" -eq 3 ];then  主分区是3个,建一个扩展分区,在扩展分区下建一个逻辑分区
                 echo -e "n\ne\n\n\nw\n"|fdisk $disk
                 echo -e "n\n\n+1G\nw\n"|fdisk $disk

           fi

     fi

fi

3.要求输入挂载点,将显示其UUID

答案:dir=/app; egrep "[[:blank:]]+$dir[[:blank:]]+" /etc/fstab |cut -d" " -f1

这道题中用到了变量,用变量的话通用性比较好。

不用fstab:

答案:

read -p "please input Mounted on name:" Name1  输入挂载点
if df $Name1 &>/dev/null ; then
        Name2=`df "$Name1" |tail -1 |grep -o "^/[^ ]*"`
        blkid $Name2 |grep -o '\<UUID="[[:alnum:]|-]*"'
        unset Name1 Name2   
else
        echo "error,Mounted on name unknown";exit 1
fi



本文转自    honeyorange   51CTO博客,原文链接:http://blog.51cto.com/13172732/1957836
相关文章
|
前端开发 JavaScript
前端基础(五)_运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、运算符优先级和结合性、数据类型的隐式转换)
本文介绍了JavaScript中的算术运算符、赋值运算符、比较运算符、逻辑运算符、三目运算符、运算符优先级和结合性以及数据类型的隐式转换。
286 3
|
小程序 JavaScript 前端开发
基于微信小程序的商城购物系统的设计与实现(论文+源码)_kaic
基于微信小程序的商城购物系统的设计与实现(论文+源码)_kaic
|
SQL Web App开发 前端开发
【less-11】基于SQLI的POST字符型SQL注入
【less-11】基于SQLI的POST字符型SQL注入
|
数据可视化 搜索推荐 Python
如何用mplfinance打造与众不同的K线图?红涨绿跌背后的实现原理!
【8月更文挑战第21天】在金融市场分析中,K线图是洞察市场动态的关键工具。Python的mplfinance库专为金融数据可视化设计,能高效绘制K线图。针对中国交易者习惯,需将上涨设为红色,下跌为绿色。首先安装mplfinance库,然后准备股票数据。使用自定义颜色函数配合`make_marketcolors`方法实现红涨绿跌效果。此设置让图表更直观,有助于快速把握市场趋势,同时mplfinance的强大功能支持进一步个性化图表。
808 0
|
消息中间件 缓存 安全
秒杀系统(1)——秒杀功能设计理念
秒杀系统(1)——秒杀功能设计理念
380 0
|
SQL Oracle 关系型数据库
Linux环境下oracle切换用户并查询数据库命令
Linux环境下oracle切换用户并查询数据库命令
303 0
|
存储 运维 监控
Linux Core Dump 解析
通常,在日常的应用系统维护活动中,有这样一种场景:在某一特定的时间段或者流量高峰时刻,我们的应用程序突然无缘无故的挂掉,没有任何征兆(当然,可能更为细致的监控没有检测到),也没有任何应用层面的日志抛出,然而,业务已经开始保障(我c,怎么又不行了,某些所谓的 XX 开始叫了。。。),顿时,大伙一脸懵逼 。。。经过对所有可疑的文件依据时间段进行“查水表”,终于有所发现。
407 0
|
缓存 搜索推荐 前端开发
Swagger的界面太丑,试试knife4j的接口文档吧
Swagger的界面太丑,试试knife4j的接口文档吧
747 0
|
存储 弹性计算 运维
最佳实践丨企业上云后资源容量如何规划和实施
企业上云后,云上的预算直接影响上云的优先级、进度、深度。预算投入的多少,与业务发展和资源需求的容量评估紧密相关。精准的容量评估,可以使企业上云的预算规划更科学,同时也更贴合业务发展阶段的需要。本文分享业务上云后企业该如何进行容量的规划和实施
最佳实践丨企业上云后资源容量如何规划和实施
|
存储 Dubbo NoSQL
为什么不建议在MySQL中使用 utf8 ?
为什么不建议在MySQL中使用 utf8 ?
183 0
为什么不建议在MySQL中使用 utf8 ?