磁盘管理

知识点 系统磁盘管理

命令:df,du,mke2fs,blkid,free<br> 配置文件:/etc/fstab ,/etc/filesystems


df命令

df - report file system disk space usage 查看磁盘使用情况

  • h (打印文件系统容量大小)print sizes in human readable format

  • H 相比与h他换算的大小不是1024 而是1000.(所以#df -H 显示出来的结果比h要大)

  • i 查看个分区inode使用情况 (有时候磁盘明明有剩余空间就是写不进去,可能就是inode已经用完了!)

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        12G 1002M   11G   9% /
devtmpfs        481M     0  481M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  7.4M  485M   2% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/sda1       197M  102M   96M  52% /boot
tmpfs            99M     0   99M   0% /run/user/0

由图可以看到各挂载点的文件系统,容量,使用%等信息,其中devtmpfs,tmpfs这些是临时文件(/dev/shm是内存),重启之后会没有了。剩下的就是我们在创建系统的时候划分的2个分区--/分区和/boot分区。那不是还有一个swap分区吗?没错使用命令free

[root@localhost test]# free
              total        used        free      shared  buff/cache   available
Mem:        1006924      130816      729892        7584      146216      712928
Swap:       8388604           0     8388604

du命令

du - estimate file space usage

显示文件大小,但是严谨的说应该是显示文件占用的block数!

[root@localhost test]# ls -l 111.txt 
-rw-r--r--. 1 root root 534 Oct 26 09:40 111.txt
[root@localhost test]# du -sh 111.txt 
4.0K    111.txt

==ls显示的是文件的实际大小,但是du显示的实际占用的block数。111.txt大小为534字节,但是由于最小的block是4K,所以就算空间明显大很多,还是占用了一个block!==

磁盘分区

电脑的存储有内部存储和外部存储。内存就是内部存储设备,这类存储的读写速度比外部存储快很多,但是问题是断电之后数据会丢失。磁盘作为一个外部存储设备相对与内存而言,读写速度是没内存快的,但是存在磁盘上的数据在断电之后还是可以保留的。

磁盘就好比一个仓库,如果你无规划的随便存储,到时候要找一件东西的时候总不肯能把整个仓库的东西都倒出来找吧! 所以这就是分区的意义。 把仓库分割成几个小房间,然后在房间里放小货柜,这些货柜就相当于我们说的block块。

通过vmware我们增加一块虚拟的硬盘

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b299e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     4605951     2097152   82  Linux swap / Solaris
/dev/sda3         4605952    41943039    18668544   83  Linux

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

本来只有一个磁盘 /dev/sda 通过vmware 我们新增了一个 /dev/sdb

拿到一块新的硬盘,我们开始分区

使用命令# fdisk /dev/sdb

[root@localhost ~]# fdisk  /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

Device does not contain a recognized partition table
使用磁盘标识符 0xae6855a6 创建新的 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)

用到最多的为n:新建一个新分区 p:查看分区情况 w:保存退出 d:删除一个分区

一顿操作猛如虎之后分区完成

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2050047     1024000   83  Linux
/dev/sdb2         2050048     4147199     1048576   83  Linux
/dev/sdb3         4147200    10438655     3145728   83  Linux
/dev/sdb4        10438656    20971519     5266432    5  Extended
/dev/sdb5        10440704    12488703     1024000   83  Linux
/dev/sdb6        12490752    20971519     4240384   83  Linux 逻辑分区,ID为5的为扩张分区 //ID为83的是主分区或lu

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

Calling ioctl() to re-read partition table.
正在同步磁盘。

结果是3个主分区+1个扩展分区 其中扩展分区里又分出2个逻辑分区。

磁盘格式化

磁盘分区完成之后是不能直接使用的,需要将各分区格式化。查看centos支持的文件系统使用命令 #cat /etc/filesystem

[root@localhost ~]# cat /etc/filesystems 
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*

格式化命令#mke2fs命令可以对各个分区进行格式化。 因为文件系统就只有xfs,ext4,ext3....这些,而mke2fs后面经常要跟文件系统,所以我们会简写为#mkfs.xfs,#mkfs.ext4....

例:

[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
64000 inodes, 256000 blocks
12800 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=262144000
8 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

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

如果没记错的,前面我们分区的时候划了3个主分区和1个扩展分区。那么扩展分区能不能格式化呢

[root@localhost ~]# mkfs.ext4 /dev/sdb4
mke2fs 1.42.9 (28-Dec-2013)
mkfs.ext4: inode_size (128) * inodes_count (0) too big for a
	filesystem with 0 blocks, specify higher inode_ratio (-i)
	or lower inode count (-N).

没有像/dev/sdb1一样显示各种‘完成’,根据规则扩展分区是不能被格式化的。

将所有分区格式化完成后,使用命令#blkid命令就可以查看各个分区的文件系统格式了。

[root@localhost ~]# blkid
/dev/sda1: UUID="d3fd6845-8847-4bb3-8a3c-411356d745b8" TYPE="xfs" 
/dev/sda2: UUID="ca7f5e8a-be90-480b-ae81-9e759f7198d8" TYPE="swap" 
/dev/sda3: UUID="58dd7619-2ce0-4125-9c74-b2e14c91852a" TYPE="xfs" 
/dev/sdb1: UUID="a0b0336c-942b-40d1-988a-af7902ca7c3e" TYPE="ext4" 
/dev/sdb2: UUID="18328409-a29a-40e2-a6ad-04914b4e5ffa" TYPE="ext4" 
/dev/sdb3: UUID="b9dcc285-d533-41e0-889d-a3bc9b7e6724" TYPE="ext4" 
/dev/sdb5: UUID="86f92871-b1f5-4fac-a4ac-ddedbb8f9736" TYPE="ext4" 
/dev/sdb6: UUID="b4750f08-6881-4392-aa3f-d6ae1c37e378" TYPE="ext4" 
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 

偷懒把所有个分区都格式化成了ext4....

挂载/卸载

磁盘经过分区 格式化之后终于可以使用了(you are too young to simple)。经过前面的铺垫,最后一步就是挂载了。挂载命令#mount,在将磁盘分区挂载之前我们需要创建一个挂载点,这个挂载点我们一般都采用目录的形式出现。

挂载步骤:

[root@localhost ~]# mkdir /mnt/PAPAPA
[root@localhost ~]# mount /dev/sdb1 /mnt/PAPAPA
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        18G  970M   17G    6% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.7M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1       197M   97M  100M   50% /boot
tmpfs            98M     0   98M    0% /run/user/0
/dev/sdb1       969M  2.5M  900M    1% /mnt/PAPAPA

通过#df -h我们可以看到/dev/sdb1已经成功挂载。

既然有挂载那必须要有卸载,卸载的命令很简单#umount

例:

[root@localhost ~]# umount /mnt/PAPAPA
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        18G  970M   17G    6% /
devtmpfs        479M     0  479M    0% /dev
tmpfs           489M     0  489M    0% /dev/shm
tmpfs           489M  6.7M  482M    2% /run
tmpfs           489M     0  489M    0% /sys/fs/cgroup
/dev/sda1       197M   97M  100M   50% /boot
tmpfs            98M     0   98M    0% /run/user/0

至此,一个磁盘从分区,格式化在到挂载,卸载都已经完成。

/etc/fstab

/etc/fstab里面存放了系统启动时缺省要挂载的分区

[root@localhost ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sat May 12 19:04:53 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=58dd7619-2ce0-4125-9c74-b2e14c91852a /                       xfs     defaults        0 0
UUID=d3fd6845-8847-4bb3-8a3c-411356d745b8 /boot                   xfs     defaults        0 0
UUID=ca7f5e8a-be90-480b-ae81-9e759f7198d8 swap                    swap    defaults        0 0


如果系统开机磁盘出现问题的话,第一时间我们就要想到可能是我们的挂载配置文件出现了问题,可以将新挂载的条目删除重新挂载。

手动增加swap分区

swap分区相当于windosw里的虚拟内存,在安装linux的时候swap分区的大小已经设置好了。但是在使用的时候会出现swap不够用的情况。但是我们又不能重新分区。所以机制的大神就另辟蹊径。主要思路为:建立swapfile文件-->格式化为swap格式-->启用该虚拟磁盘

例:

[root@localhost ~]# dd if=/dev/zero of=/mnt/PAPAPA/pa.txt bs=1M count=1024
dd: 写入"/mnt/PAPAPA/pa.txt" 出错: 设备上没有空间
记录了950+0 的读入
记录了949+0 的写出
995962880字节(996 MB)已复制,3.36824 秒,296 MB/秒
[root@localhost ~]# mkswap -f /mnt/PAPAPA/pa.txt
正在设置交换空间版本 1,大小 = 972616 KiB
无标签,UUID=6ea1ac70-9956-4066-b466-6b267fefdcb2
[root@localhost ~]# swapon /mnt/PAPAPA/pa.txt
swapon: /mnt/PAPAPA/pa.txt:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# chmod 0600 !$
chmod 0600 /mnt/PAPAPA/pa.txt


增加前swap分区的容量

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         113         726           6         136         704
Swap:          2047           0        2047


增加后swap分区的容量

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         113          64           6         797         679
Swap:          2997           0        2997

如果想要卸载的话使用命令#swapoff即可

笔记

  • fdisk只能针对小于2T的磁盘进行分区,如果磁盘大鱼2T则只能使用parted来分区。
  • raid是在bios的基础上做的。各个厂商都有操作说明。一般有raid 0、1、5、6、10等

转载于:https://my.oschina.net/u/3997678/blog/3026894

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值