linux入门之磁盘管理分区管理

author author     2022-08-01     469

关键词:

Linux入门之磁盘管理(1)分区管理

无论是windows还是linux,目前支持的分区结构只有两种,一种是基于blos检查启动的mbr结构,另一种是基于uefi(统一扩展固件接口)的opt分区结构。当然,目前广泛的还是使用的mbr结构。

linux中有很多不同的文件系统,当使用安装光盘安装的readhat类的linux系统默认一般支持的主要格式为ext类(ext2ext3ext4),当然这些是redhat或者centos56所使用的默认设备,且安装centos7时默认使用的分区格式为xfs格式,当然这些只是内核所支持的一部分模块而已,如果需要,可以重新编译或者添加模块。

磁盘信息查看:

列出次磁盘及分区设备:

lsblk                #列出所有块设备大小及分区
lsblk  /path/to/dev_file         #列出指定块设备大小及分区
#说明:当然,磁盘及其磁盘分区在被linux系统内核识别后,映射出的文件都会是块设备文件

[[email protected] ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  /mnt/iso
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
├─sda3   8:3    0    2G  0 part [SWAP]
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0  7.8G  0 part /testdir
sdb      8:16   0   20G  0 disk 
sdc      8:32   0   20G  0 disk 
sdd      8:48   0   10G  0 disk 
sde      8:64   0   10G  0 disk

说明:这里分区如果被格式化并挂载后会显示其挂载点


通过查看映射文件来查看设备

ls  /dev/[sh]d[a-z]    #磁盘设备默认都在/dev/目录下会哟偶对应的映射

[[email protected] ~]# ls /dev/sda*    #这里列出sda及其下的所有分区
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5


查看磁盘及分区列表记录文件:

cat  /proc/partitions
[[email protected] ~]# cat /proc/partitions 
major minor  #blocks  name
 
8    0   20971520  sda
8    1     204800  sda1
8    2   10485760  sda2
8    3    2097152  sda3
8    4        1  sda4
8    5    8181760  sda5
8    16   20971520  sdb
8    32   20971520  sdc
8    48   10485760  sdd
8    64   10485760  sde

解析:只要块设备映射的文件的元数据不会有文件大小的显示,而是显示主设备号和次设备号,主设备相同的设备文件表示是同一类设备,而次设备号是区分它们之间的不同。


     磁盘管理工具:

交互式管理命令

fdisk

使用方法:

fdisk  -l  [-u]  /path/to/dev  
#默认不指定为列出所有磁盘分区,指定可列出指定磁盘及分区信息

技术分享

说明:因为上面用lsblk显示有哦很多磁盘,这里我只截取第一个磁盘及其分区的信息,因为信息过长,这里我们使用正则表达式或者通配符来找出常用的信息:


列出所有磁盘的各自的总大小:

fdisk -l | grep ‘^Disk[[:space:]]/dev/[sh]d[a-z].*’

技术分享

解析:这里我们简要说一下目前的磁盘接口类型,IDE默认映射为/dev/hd[a-z]#格式的文件,当然一般一台机器一个IDE接口最多也就4IDE格式的硬盘,并且其中2块为一组,两组之间并行,每组两个口一个为主硬盘,一个为次硬盘,当然还有类似的ATA,也是hd开头。当然现在因为IDE速度不够快的问题,大部分使用SCSiSATAUSB接口的硬盘,都被映射为/dev/sd[a-z]#这种类型格式,所有我们根据这些固定格式查询当前机器的硬盘总大小。


新建磁盘分区:

这里可以对对一个新盘进行分区

fdisk  /PATH/TO/DEV_FILE    :当要对一个磁盘设备修改分区时需要指定硬盘设备

fdisk  /dev/sdb   :这里我们指明第二块硬盘/dev/sdb

fdisk  /dev/sdb     #进入/dev/sdb磁盘分区交换管理界面

技术分享

当这里列出以后,显示让我们输入命令,并提示输入m可以查看帮助,于是:

Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition                #删除一个分区

   l   list known partition types            #列出分区类型对应的Id表示号

   m   print this menu                #打印命令帮助菜单

   n   add a new partition               #添加一个分区

   o   create a new empty DOS partition table    #创建为mbr分区格式硬盘

   p   print the partition table              #打印所有分区信息

   q   quit without saving changes             #不保存退出

   s   create a new empty Sun disklabel

   t   change a partition‘s system id           #修改分区类型表示

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit            #保存并退出

   x   extra functionality (experts only)

解析:这里列出注释的这些都是最常用的命令,当然,此工具只是对mbr启动格式也就是msdos格式有效



这时根据提示指定分区的编号,为了方便管理,这里我们安顺序进行

Partition number (1-4): 1                 #选择为1号分区
First cylinder (1-2610, default 1):             #指定柱面起始位置,这里不指定默认从1开
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +128M    
#设定为128M的分区

注意:这里有3中指定分区大小的设定方式,一种为设置最后柱面,一种为从起始柱面开始往后加多少柱面,而最后一种+size为指定常用的设备大小格式,KMG,使用+size注意指定的大小前要加+符号。


查看刚才新建的分区,输入p命令打印分区信息

Command (m for help): p
 
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb64bed20
 
   Device Boot      Start        End      Blocks   Id  System
/dev/sdb1             1          17      136521   83  Linux
/dev/sdb2              18         83      530145   83  Linux
/dev/sdb3          84         215     1060290   83  Linux


这里显示了刚才新简单分区,现在再次创建:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e                        #选择创建为扩展分区
Partition number (1-4): 4            #选择为4号分区
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):   #这里直接回车
Using default value 2610

解析:因为mbr格式的分区最多支持为4个主分区或者3个主分区加一个扩展分区,所有最后选择大小时直接回车表示使用剩余所有空间,这样就是3个主分区和一个扩展分区了。


当然如果再次创建就只能创建为逻辑分区了,这里直接就显示设置大小

Command (m for help): n
First cylinder (216-2610, default 216): 
Using default value 216
Last cylinder, +cylinders or +size{K,M,G} (216-2610, default 2610): +1G


列出指定磁盘的磁盘分区:

下面使用p命令来显示刚才创建的所有分区及信息:

技术分享


删除分区指定磁盘分区:

使用d命令删除指定编号分区

技术分享

解析:这里我们删除的是第4号分区,为什么第5号分区也被删除?因为,4号分区为扩展分区,里面存放的有rbm表来记录其下的逻辑分区,这样扩展分区被删除,其下的逻辑分区rbm记录也被删除,那么分区也就相当于无记录。


调整分区Id标识:

使用t命令表示需要修改指定分区标示,然后选择会几号分区,提示按L列出所有类型对应的代码

技术分享

解析:这里按t进入后选项2号分区,也就是/dev/sdb2,这里提示按 L 可以显示标示类型对应的编号,当然,如果不按t进入,在输入命令时也可以使用 l 来查看。当然,如果你不想进入fdisk工具进行交互式,也可以一些方法来让此编号类型表显示出来,比如,借助管道可以将type表打印在当前终端界面上:

[[email protected] ~]# echo -e ‘l
q‘ | fdisk /dev/sda 2> /dev/null | grep -v ‘^[[:space:]]?$‘ | grep -v ‘^Command.*:‘

解析:如果使用管道重定向或者多段输入重定向时,是需要进行信息删选的


现在我们要修改/dev/sdb2类型为Linux swap / so ,也就是交换分区,根据上图因此选82

技术分享

解析:转换后,通过p命令打印分区列表信息,其中/dev/sdb2Id列显示为82,表示为交换分区


退出命令:

q 不保存退出

w 保存退出

这里我们选择保存,输入w

Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.

说明:这里表示调用分区创建成功,当然如果出现了警告信息,也可以用过一些命令来让系统内核重读分区表信息:


redhat5、7版本可以使用:

partprobe    :    #默认不指定为重读所有分区信息
partprobe  /dev/sdb : #重读指定磁盘设备的分区信息

redhat6下:

partk  -a  /dev/sdb            #对指定设备进行新增操作后
partk  -d  --nr  5             #对指定分区号
partk   -d   --nr   5-8           #或者从那个分区号到哪个分区号进行操作后
Kpartx  -a /dev/sdb  --force    #强制对新增分区的设备重读
kpartx  -l  /dev/sdb            #重读并列出


非交互式管理命令

使用 parted 命令

注意:此命令进行的操作都是实时生效的,所以需要谨慎使用,一般还是推荐fdisk

常见选项命令:

parted  /dev/sdb  mklabel  [ gpt|msdos ]      :修改分区结构格式为gpt或者mbr
parted  /dev/sdb  print                  :打印指定磁盘分区信息
parted  /dev/sdb  mkpart  primary  1  SIZE   :创建主分区,从1扇区开始SIZE结束
parted  /dev/sdb  rm  1                 :删除指定编号


修改分区结构为gpt

方法一

[[email protected] ~]# parted /dev/sdb mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                            #这里选择yes表示重建分区结构                
Information: You may need to update /etc/fstab.

方法二

更快捷的方法来设置分区结构,通过多行输入重定向

[[email protected] ~]# parted  /dev/sdb  mklabel  gpt  <<  EOF  &> /dev/null
> yes
> gpt
> EOF
[[email protected] ~]# parted /dev/sdb print | grep -i ‘.*table.*‘
Partition Table: gpt


查看/dev/sdb分区表结构是否已经被修改为gpt格式

[[email protected] ~]# parted /dev/sdb print | grep ‘.*Table:.*$‘
Partition Table: gpt

 

同样显示fdsik列出类似的分区总大小格式

[[email protected] ~]# parted  /dev/sdb print  | grep -o ‘^Disk[[:space:]]/dev/[sh]d[a-z].*$‘ 
Disk /dev/sdb: 21.5GB

注意:因为分区时常操作可能会导致出现错误提示,这时不想显示,可以使用错误重定向先过滤出错误信息,如:parted  /dev/sdb  print  2>  /dev/null

#添加一个主分区编号为1,分为200M
[[email protected] ~]# parted /dev/sdb mkpart primary 1 200


 

 

 

 

 

 


本文出自 “神剑特兰克斯” 博客,请务必保留此出处http://mengzhaofu.blog.51cto.com/10085198/1843572

linux入门之磁盘管理/etc/fstab与交换分区

Linux入门之磁盘管理(4)/etc/fstab与交换分区在linux通过挂载命令可以使用各种选项进行不同文件系统的设备文件进行挂载,当然不仅限于块设备,但是无论怎么挂载,一般默认新建的文件系统进行挂载开机是不会自动挂载的,每次... 查看详情

linux入门之磁盘管理磁盘配额

Linux入门之磁盘管理(6)磁盘配额在linux中使用向磁盘中存入数据时,如果有多个用户对同个磁盘进行操作,其中一个用户放了很大数据的文件导致硬盘容量用光,那么其他用户将无法再存入数据,这时就需要对每个用户进行存入... 查看详情

linux入门之磁盘管理文件系统挂载

Linux入门之磁盘管理(3)文件系统挂载当磁盘建立了分区,创建了文件系统,只是说明该设备可以用来存储,但是要想访问设备,就需要通过建立一个或多个挂载点,来提供给用户进行访问,在linux中,提供了强大的命令来用于实... 查看详情

linux入门之磁盘管理lvm逻辑卷的使用

Linux入门之磁盘管理(8)LVM逻辑卷的使用在Linux中虽然有raid来保证数据的稳定以及磁盘性能的提高,但是其扩展性并不是很好,在很多生产环境中,都是数据正在使用中,在这时如果中断一段时间就会有很大的损失,因此Linux提供... 查看详情

linux入门之磁盘管理raid的实现

Linux入门之磁盘管理(7)RAID的实现RAID(RedundantArraysofInexpensiveIndependentDisks)被称为廉价冗余阵列,为了提高磁盘的性能或者保存数据完整,将多个磁盘合成一个“阵列”来提供更好的性能、冗余等。RAID一般使用硬件raid,并配合指定ra... 查看详情

linux入门之磁盘管理dd命令使用

Linux入门之磁盘管理(5)dd命令使用在Linux中,经常需要一些数据读写等测试,还有文件以及其它数据的备份迁移,一般使用cp命令可以解决一部分,但是其无法进行控制数据的流向及动作,这时就可以使用dd命令,来进行灵活的数... 查看详情

linux入门之磁盘管理lvm逻辑卷案例

Linux入门之磁盘管理(9)LVM逻辑卷案例案例介绍阶段(1):创建一个由两个物理卷组成的大小未20G的卷组myvg,要求其PE大小为16M;而在此卷组中创建一个大小未5G的逻辑卷lvtest,此逻辑卷要能在开机后自动挂载至/mnt/lvtest目录,且... 查看详情

磁盘管理之lvm

...个或多个硬盘的分区在逻辑上集合来呈现给上层应用,对磁盘实现动态管理的机制。相对于普通的磁盘分区有很大的灵活性,使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。2、专业术语   ●物理卷(PhysicalVo... 查看详情

存储管理之硬件基础机械磁盘原理以及设备规范mbr格式的分区管理

...多核心,每个核心可以完成一个进程的处理) 传统的机械磁盘及分区管理 RAID技术,软RAID实现 LVM Btrfs 文件系统管理: ext、xfs、btrfsLinux存储管理(数据存储): 存储器在冯诺依曼体系中叫做存储器,存储设备在冯诺依曼体... 查看详情

磁盘管理之分区格式化及其挂载

一、磁盘管理总体分类 1)磁盘结构 2)分区类型 3)管理分区4)管理文件系统 5)挂载设备6)管理虚拟内存………………………………………………………………………………………………………………………重... 查看详情

磁盘及文件管理系统入门

linux磁盘及文件系统管理初步目录    1.磁盘及文件系统管理    2.机械磁盘结构    3.mknod命令    4.parted命令    5.GPT分区&UEFI &n 查看详情

磁盘及文件管理系统入门

linux磁盘及文件系统管理初步目录    1.磁盘及文件系统管理    2.机械磁盘结构    3.mknod命令    4.parted命令    5.GPT分区&UEFI &n 查看详情

磁盘管理之磁盘分区(代码片段)

磁盘管理之磁盘分区磁盘分区表磁盘分区表位置:0磁头0磁道1扇区(前446字节表示mbr主引导记录,中单64字节表示分区表,最后2字节55AA标识表示结束标记)主分区(primary):一般一定要有,用来存放数据(最多四个主分区)扩展分区(exten... 查看详情

linux系统的磁盘管理(代码片段)

Linux系统的磁盘管理一、环境介绍1.Linux系统版本2.系统磁盘情况二、磁盘介绍1.磁盘分区理解2.MBR分区方案2.GPT分区分区方案三、分区工具fidsk使用1.查看磁盘和分区信息2.查看指定设备信息3.对新磁盘进行分区4.格式化文件系统四、... 查看详情

linux磁盘管理(fdisk磁盘管理工具|swap交换分区|lvm逻辑卷管理)(代码片段)

目录1Linux磁盘管理1.1fdisk磁盘管理工具1.2文件系统2磁盘管理二2.1创建swap交换分区2.2关闭swap交换分区2.3逻辑卷管理:LVM1Linux磁盘管理lsblk:列出所有可用块设备的信息fdisk-l:查看磁盘所有分区信息blkid:查看文件系... 查看详情

文件系统管理之实例解说fdisk使用方法

...;fdisk-PartitiontablemanipulatorforLinux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具;fdsik能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux、fat32... 查看详情

磁盘管理之交换分区

  Swap分区,即交换分区。当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,并与Swap交换。虽然swap的性能比起物理内存逊色不少,而且内存和SSD的价格也不高,swap对个人机而言,其性能被大... 查看详情

存储管理之磁盘分区

在使用一块磁盘的之前,我们要对其进行分区处理,为的是优化这块磁盘的I/O性能;为不同的目的分配不同的空间,来实现空间的配额限制,就好像Windows中的C、D盘那样,给其一定的空间;进行高速修复和隔离系统文件与其他文... 查看详情