磁盘分区

简介:

我们都知道要对磁盘进行分区,但是为什么要进行分区呢?当然有很多好处啦!接下来我们就说道说道: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
相关文章
|
8月前
|
存储 数据管理 数据安全/隐私保护
如何给移动硬盘分区?(移动硬盘分区详细指南)
本文介绍了如何对移动硬盘进行分区,以提高数据管理和安全性。首先解释了硬盘分区的基本概念和好处,包括提升管理效率、保障数据安全和优化硬盘利用。接着,提供了两种分区方法:一是使用Windows磁盘管理器,适合基础操作;二是使用DiskGenius软件,功能更强大且用户友好。对于已有分区的移动硬盘,可通过调整现有分区或拆分来增加新分区。整个过程中,建议先备份数据,并谨慎操作。
|
存储 安全 Linux
Linux文件系统和磁盘分区
Linux文件系统和磁盘分区
87 0
|
IDE 安全 Linux
2.2磁盘分区
2.2磁盘分区
97 0
|
Linux
【磁盘管理】fdisk命令 – 管理磁盘分区
fdisk命令来自于英文词组“Partition table manipulator for Linux”的缩写,其功能是用于管理磁盘的分区信息。如果一套几百平米的房子内部没有墙壁,虽然看起来会很敞亮,但是各种声音、气味、物品会随意充斥在整个房子内,让人极不舒适,因此需要用墙壁按照功能进行划分,例如卧室、厕所、厨房、阳台等等。
239 0
|
存储 运维 Oracle
Linux系统管理--硬盘、卷组、逻辑卷和文件系统
增加两个20GB的硬盘,注意新增加的硬盘不能取代原来安装了操作系统的0号硬盘,不然无法启动。
154 0

热门文章

最新文章