磁盘管理

QQ截图20191127192708.png

QQ截图20191127223120.png

磁盘分区方法

  • 小于2T的磁盘可以使用fdisk命令
  • 大于2T的磁盘可以使用parted命令,也可以使用fdisk命令

磁盘自动挂载

/etc/rc.local文件

  • Centos7中,需要保证该文件有x权限
vi /etc/rc.local

mount /dev/sdb1 /mnt

/etc/fstab文件

  • blkid命令可以查看设备的UUID
vi /etc/fstab

#挂载磁盘文件(存储设备)    挂载点    指定文件系统类型    挂载的参数    是否备份磁盘    是否检查磁盘
/dev/sdb1    /mount01    xfs    defaults    0    0
UUID=144738ff-0da3-4162-b574-40af379cbe9e    /mnt2    xfs    defaults    0    0

磁盘出现No space left on device

设备上没有剩余空间

  • 磁盘的inode和block其中一个资源耗尽都会产生这个提示
  • inode耗尽:出现了大量小文件,使用df -i查看inode信息
  • block耗尽:存储的数据过多,使用df -h查看block信息

调整swap分区大小

将磁盘分出一部分空间给swap分区使用

#分配1G磁盘空间
dd if=/dev/zero of=/root/swap1 bs=100M count=10

#将指定磁盘空间作为swap空间使用
mkswap /root/swap1

#打开使用swap空间
swapon /root/swap1

#关闭使用swap空间
swapoff /root/swap1

#查看swap空间
free -h

系统的操作命令

fdisk命令

管理小于2T的磁盘,所有的操作记录在内存中不会立刻生效,直到输入w

  • fdisk -l : 查看所有磁盘

已知磁盘/dev/sdb 对磁盘进行分区操作

  • d : 删除分区
  • g : 创建一个新的空GPT分区表(处理大于2T的磁盘)
  • l : 列出已知的分区类型
  • m : 打印此菜单
  • n : 添加新分区
  • o : 创建新的空DOS分区表(处理小于2T的磁盘)
  • p : 打印分区表
  • q : 不保存更改就退出
  • t : 更改分区的系统id
  • u : 改变分区的方式/是否按照扇区进行划分
  • w : 将表写入磁盘并退出
[root@1997sty ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x50b1173a 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   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 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)

命令(输入 m 获取帮助):

添加新分区,最多可以创建4个主分区或者3个主分区和1个扩展分区

  • p primary (0 primary, 0 extended, 4 free)
  • p 主分区(0 主分区,0 扩展分区, 4个可用)
  • e extended
  • e 扩展分区
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

删除分区,如果只有1个分区就会直接删除

命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除

添加扩展分区,需要添加逻辑分区才可以使用

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):
起始 扇区 (2099200-20971519,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-20971519,默认为 20971519):+3G
分区 2 已设置为 Extended 类型,大小设为 3 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (2101248-8390655,默认为 2101248):
将使用默认值 2101248
Last 扇区, +扇区 or +size{K,M,G} (2101248-8390655,默认为 8390655):
将使用默认值 8390655
分区 5 已设置为 Linux 类型,大小设为 3 GiB

将表写入磁盘并退出

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7a1accec

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    16779263     4194304    5  Extended
/dev/sdb4        16779264    16781311        1024   83  Linux
/dev/sdb5         8392704    14684159     3145728   83  Linux
/dev/sdb6        14686208    16779263     1046528   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

parted命令

管理大于2T磁盘,分区后直接生效

已知磁盘/dev/sdc 对磁盘进行分区操作

  • mklabel,mktable LABEL-TYPE create a new disklabel (partition table) ---- 创建新的磁盘标签(分区表)
  • print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition ---- 显示分区表、可用设备、可用空间、所有找到的分区或特定分区
  • mkpart PART-TYPE [FS-TYPE] START END make a partition ---- 创建一个分区
  • quit exit program ---- 退出程序
  • rm NUMBER delete partition NUMBER ---- 删除分区 NUMBER
[root@1997sty ~]# parted /dev/sdc
GNU Parted 3.1
使用 /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END

  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) 

修改磁盘分区类型

(parted) mklabel gpt                                                      
警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? y  
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 3221GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  标志

磁盘分区

(parted) mkpart primary 0  2100G                                          
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i                                                
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 3221GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     标志
 1      17.4kB  2100GB  2100GB               primary

partprobe命令

系统重新读取分区表,不重启服务器情况下重新读取分区列表

  • partprobe : 系统重新加载分区表
  • partprobe /dev/sdb : 系统重新加载/dev/sdb分区表

mkfs命令

(Make FileSystem) 在特定的分区上建立linux文件系统(格式化操作)

  • mkfs.xfs /dev/sdc1 : 在/dev/sdc建立xfs文件系统
  • mkfs /dev/sdc1 : 在/dev/sdc建立ext2文件系统
  • mkfs -t xfs /dev/sdb4 : 在/dev/sdb4建立xfs文件系统

dd命令

可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件 设备 标准输出

  • dd if=/dev/zero of=/tmp/file1000M bs=10M count=100 : 从/dev/zero输入信息,输出信息到/tmp/file1000M,每次输入10M,进行100次

常用参数

  • if=文件名 : 输入文件名,默认为标准输入即指定源文件
  • of=文件名 : 输出文件名,默认为标准输出即指定目的文件
  • ibs=bytes : 一次读入bytes个字节,即指定一个块大小为bytes个字节
  • obs=bytes : 一次输出bytes个字节,即指定一个块大小为bytes个字节
  • bs=bytes : 同时设置读入/输出的块大小为bytes个字节
  • cbs=bytes : 一次转换bytes个字节,即指定转换缓冲区大小
  • skip=blocks : 从输入文件开头跳过blocks个块后再开始复制
  • seek=blocks : 从输出文件开头跳过blocks个块后再开始复制
  • count=blocks : 仅拷贝blocks个块,块大小等于ibs指定的字节数

sort命令

可针对文本文件的内容,以行为单位来排序

  • sort -n -k2 num.txt : 对第二列,依照数值的大小排序,并输出
  • sort -n num.txt : 依照数值的大小排序,并输出

常用参数

  • -b : 忽略每行前面开始出的空格字符
  • -c : 检查文件是否已经按照顺序排序
  • -d : 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
  • -f : 排序时,将小写字母视为大写字母
  • -i : 排序时,除了040至176之间的ASCII字符外,忽略其他的字符
  • -m : 将几个排序好的文件进行合并
  • -M : 将前面3个字母依照月份的缩写进行排序
  • -n : 依照数值的大小排序
  • -o : 将排序后的结果存入指定的文件
  • -r : 以相反的顺序来排序

du命令

显示目录或文件的大小

  • du : 查看当前目录下的文件和目录大小
  • du -s / : 查看/目录的大小
  • du -sh / : 查看/目录的大小,以K,M,G为单位,提高信息的可读性

常用参数

  • -s : 显示该文件或目录的信息
  • -h : 以K,M,G为单位,提高信息的可读性