linux命令之磁盘与文件系统管理命令(上)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令之磁盘与文件系统管理命令(上)相关的知识,希望对你有一定的参考价值。

1.fdisk:磁盘分区工具

该命令是linux下常用的磁盘分区工具,但是只能给小于2TB的磁盘划分分区。

常用参数为-l,显示所有磁盘分区的信息。

示例:

1)显示磁盘分区列表

[[email protected] ~]# fdisk -l  # 查看当前系统的所有磁盘分区信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes  # 磁盘/dev/sda的大小
255 heads, 63 sectors/track, 2610 cylinders  # 255个虚拟磁头,63个扇区/磁道,2610个柱面
Units = cylinders of 16065 * 512 = 8225280 bytes  # 一个柱面的大小为8225280bytes
Sector size (logical/physical): 512 bytes / 512 bytes  #每个扇区的字节数
I/O size (minimum/optimal): 512 bytes / 512 bytes  # 每次读写的字节数
Disk identifier: 0x0000db9b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1045     8388608   82  Linux swap / Solaris
/dev/sda2   *        1045        2611    12581888   83  Linux

说明:Device表示分区;Boot表示启动分区,用*表示;Start表示开始的柱面;End表示结束的柱面;Blocks表示快数量;Id表示分区类型Id;System表示分区类型。

2)模拟分区实战

[[email protected] ~]# fdisk /dev/sdb  # 不加参数,直接接设备名就可以进行分区
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x784b7b62.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content wont be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. Its strongly recommended to
         switch off the mode (command c) and change display units to
         sectors (command u).

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
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partitions system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +100M

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x784b7b62

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          14      112423+  83  Linux

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (15-130, default 15): 
Using default value 15
Last cylinder, +cylinders or +size{K,M,G} (15-130, default 130): 
Using default value 130

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x784b7b62

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          14      112423+  83  Linux
/dev/sdb2              15         130      931770    5  Extended

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
p
Partition number (1-4): 3
No free sectors available

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (15-130, default 15): 
Using default value 15
Last cylinder, +cylinders or +size{K,M,G} (15-130, default 130): +400M

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x784b7b62

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          14      112423+  83  Linux
/dev/sdb2              15         130      931770    5  Extended
/dev/sdb5              15          66      417658+  83  Linux

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (67-130, default 67): 
Using default value 67
Last cylinder, +cylinders or +size{K,M,G} (67-130, default 130): 
Using default value 130

Command (m for help): p

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x784b7b62

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          14      112423+  83  Linux
/dev/sdb2              15         130      931770    5  Extended
/dev/sdb5              15          66      417658+  83  Linux
/dev/sdb6              67         130      514048+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# partprobe /dev/sdb  # 执行该命令通知内核分区表已更新,不需要重启系统就可以让分区生效

格式化磁盘

[[email protected] ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
28112 inodes, 112420 blocks
5621 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67371008
14 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

挂载磁盘

[[email protected] ~]# mount /dev/sdb1 /mnt
[[email protected] ~]# df -T
Filesystem     Type    1K-blocks    Used Available Use% Mounted on
/dev/sda2      ext4     12253360 8557940   3066328  74% /
tmpfs          tmpfs      953140      80    953060   1% /dev/shm
/dev/sr0       iso9660   3824484 3824484         0 100% /media/CentOS_6.8_Final
/dev/sdb1      ext4       104769    1550     97598   2% /mnt

 2.partprobe:更新内核的硬盘分区表信息

该命令用于在硬盘分区发生变化时,更新内核的硬盘分区表数据,可以在不重启系统时就更新分区表信息。

[[email protected] ~]# partprobe /dev/sdb

3.parted:磁盘分区工具

该命令用于对大于2TB的磁盘进行分区,并且要将磁盘转换为GPT格式。

常用的参数选项为-l,显示所有磁盘分区的信息。

通过parted -h或者直接通过parted进入交互模式后通过-h查看帮助。

[[email protected] ~]# parted
GNU Parted 2.1
使用 /dev/sda
Welcome to GNU Parted! Type help to view a list of commands.
(parted) h                                                                
  align-check TYPE N                       
  check NUMBER                            
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   
  help [COMMAND]                         
  mklabel,mktable LABEL-TYPE    # 创建分区表         
  mkfs NUMBER FS-TYPE                   
  mkpart PART-TYPE [FS-TYPE] START END  # 创建分区
  mkpartfs PART-TYPE FS-TYPE START END  # 创建带有文件系统的分区
  move NUMBER START END                   
  name NUMBER NAME                        
  print [devices|free|list,all|NUMBER]    # 显示分区表信息
  quit                                    
  rescue START END                       
  resize NUMBER START END               
  rm NUMBER  # 删除编号NUMBER的分区                              
  select DEVICE                          
  set NUMBER FLAG STATE                   
  toggle [NUMBER [FLAG]]                  
  unit UNIT                              
  version                                 
(parted) 

示例:

1)显示分区情况

[[email protected] ~]# parted -l
Model: VMware, VMware Virtual S (scsi)  # 磁盘类型
Disk /dev/sda: 21.5GB  # 磁盘大小
Sector size (logical/physical): 512B/512B  # 扇区大小
Partition Table: msdos  # 分区表类型

Number  Start   End     Size    Type     File system     标志
 1      1049kB  8591MB  8590MB  primary  linux-swap(v1)
 2      8591MB  21.5GB  12.9GB  primary  ext4            启动

2)模拟分区实战

[[email protected] ~]# parted /dev/sdb  # parted直接接需要分区的设备
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted! Type help to view a list of commands.
(parted) mklabel gpt  # 为sdb磁盘创建GPT分区表,大于2TB的磁盘必须执行这一步                                                    
(parted) mkpart primary 0 500   # 创建主分区,500M                                          
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ignore   # 忽略警告                                        
(parted) p  # 显示分区表信息                                                   
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End    Size   File system  Name     标志
 1      17.4kB  500MB  500MB               primary

(parted) mkpart logical 501 1000  # 创建逻辑分区,大小为500MB
(parted) p  # 显示分区表信息                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size   File system  Name     标志
 1      17.4kB  500MB   500MB               primary
 2      501MB   1000MB  499MB               logical

(parted) quit  # 退出                                                            
信息: You may need to update /etc/fstab.                                  

[[email protected] ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2
[[email protected] ~]# mkfs.ext4 /dev/sdb1  # 格式化
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
122400 inodes, 488264 blocks
24413 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67633152
60 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]# mount /dev/sdb1 /mnt  #挂载

4.mkfs:创建linux文件系统

该命令用于在指定的设备或者分区上创建格式化并创建文件系统。

常用的参数有-t:指定要创建的文件系统类型,也可以直接使用mkfs.ext4创建ext4文件系统。

5.df:报告文件系统磁盘空间的使用情况

该命令用于显示文件系统磁盘空间的使用情况。

参数 说明
-h(常用) 以容易理解的格式显示磁盘的使用情况
-i(常用) 显示文件系统的inode信息
-T(常用) 列出文件系统的类型

 

 

 

示例:

1)显示磁盘的使用情况

[[email protected] ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       12253360 8557460   3066808  74% /
tmpfs             953140       0    953140   0% /dev/shm

2)-h选项

[[email protected] ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        12G  8.2G  3.0G  74% /
tmpfs           931M   72K  931M   1% /dev/shm

3)列出文件系统的类型

[[email protected] ~]# df -T
Filesystem     Type  1K-blocks    Used Available Use% Mounted on
/dev/sda2      ext4   12253360 8557556   3066712  74% /
tmpfs          tmpfs    953140      72    953068   1% /dev/shm

 

以上是关于linux命令之磁盘与文件系统管理命令(上)的主要内容,如果未能解决你的问题,请参考以下文章

Linux之磁盘管理dfdumount unmount 命令

Linux系统之磁盘管理相关命令的基本使用

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

【Linux命令】磁盘管理(逻辑卷与物理卷)

嵌入式软件开发之Linux 磁盘管理

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