Linux磁盘管理

第五课预习内容
说明:10-12节课不作为重点,不要成为负担
4.1 df命令
4.2 du命令
4.3/4.4 磁盘分区
4.5/4.6 磁盘格式化
4.7/4.8 磁盘挂载
4.9 手动增加swap空间
4.10/4.11/4.12 lvm讲解
4.13 磁盘故障小案例
扩展学习 parted分区gpt格式 http://www.apelearn.com/bbs/thread-7243-1-1.html

一、df命令

man df 命令查看官方说明文档
df命令直接查看文件系统的使用情况

[root@localhost /]# df
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sda3      44009480 7232140 36777340   17% /
devtmpfs        1924688       0  1924688    0% /dev
tmpfs           1940652       0  1940652    0% /dev/shm
tmpfs           1940652   17616  1923036    1% /run
tmpfs           1940652       0  1940652    0% /sys/fs/cgroup
/dev/sda1        201380  163156    38224   82% /boot
tmpfs            388132       0   388132    0% /run/user/0
  • 挂载点实际上市系统的一个目录,linux磁盘不能直接访问,必须有个挂载点,有挂载点才 能进入磁盘读取数据

  • df -h 以适合单位显示

[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        42G  6.9G   36G   17% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G   18M  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1       197M  160M   38M   82% /boot
tmpfs           380M     0  380M    0% /run/user/0
  • 文件带tmpfs是临时文件系统,重启之后会消失,/dev/shm是内存f\分区,大小是内存的一半,文件放内存速度比磁盘快,重启后消失,/dev开头的是我们需要关注的,这里没有看到swap分区,我们可以用free命令查看
[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        3881308      202212     3414368       17616      264728     3405528
Swap:       8191996           0     8191996
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        197M        3.3G         17M        258M        3.2G
Swap:          7.8G          0B        7.8G
  • df -i 查看Inode
  • df -m 以m为单位
  • df -k 以K为单位

二、du命令

du命令查看文件的大小

  • du -sh /root 查看root目录大小
  • du -s /root 如果不加h就不显示单位大小
[root@localhost etc]#  du -sh
37M	.
[root@localhost etc]# du -s
37424	.
[root@localhost etc]# du -sh passwd
4.0K	passwd
[root@localhost etc]# ls -lh passwd
-rw-r--r--. 1 root root 2.3K 9月  29 15:06 passwd
[root@localhost etc]# 

du -sh 和ls -lh 区别是du -sh最小显示4kb,不足4kb也显示4kb

三、磁盘分区

服务器支持热插拔硬盘,虚拟机增加了磁盘后系统要重启才能识别

  • fdisk -查看一个硬盘
[root@localhost etc]# fdisk
用法:
 fdisk [选项] <磁盘>    更改分区表
 fdisk [选项] -l <磁盘> 列出分区表
 fdisk -s <分区>        给出分区大小(块数)

选项:
 -b <大小>             扇区大小(512、1024、2048或4096)
 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)
 -h                    打印此帮助文本
 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
 -v                    打印程序版本
 -C <数字>             指定柱面数
 -H <数字>             指定磁头数
 -S <数字>             指定每个磁道的扇区数

  • fdisk -l 目前系统有的磁盘列出来
[root@localhost etc]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648    16795647     8192000   82  Linux swap / Solaris
/dev/sda3        16795648   104857599    44030976   83  Linux

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

10.7G硬盘刚在虚拟机里面添加的,当前两块硬盘,一块53.7和一块10.7G,实际一块50G一块10G

  • fdisk /dev/sdb 跟上磁盘名字分区
[root@localhost etc]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

分区最常用的几个命令:

  • p :表示打印当前磁盘的分区情况
  • n:表示建立一个新的分区
  • w:表示保存
  • q:表示退出
  • d:表示删除已分区
    mbr分区最多分2T磁盘4个主分区,超过2T就不能用fdisk了
    在这里插入图片描述
[root@localhost etc]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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


命令(输入 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):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

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

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    18876415     4194304    5  Extended

创建了一个5G的主分区和一个4G的扩展分区

四、磁盘格式化

  • cat /etc/filesystems centos7支持系统文件的格式
[root@localhost etc]# cat /etc/filesystems 
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*

  • xfs是linux系统默认的格式,用mount命令查看
    在这里插入图片描述
  • centos6之前用的都是ext4,ext3,ext2的格式,cenos7改成xfs
  • mke2fs格式化命令 不支持xfs
    -mke2fs -t ext4 /dev/sdb1 格式化成ext4格式
[root@localhost ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成                            
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
  • mkfs.ext4 /dev/sdb1 一样也可以格式化成ext4格式
[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成                            
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
  • mkfs.xfs -f /dev/sdb1 强制格式化成xfs格式
[root@localhost ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

  • blkid /dev/sdb1查看没有挂载的分区
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="3a4f6c60-792c-4c83-9032-bae012a57706" TYPE="xfs" 
  • mke2fs -b 2048 /dev/sdb1 指定块大小为8192,什么情况下用8K的块呢?一般存视频图片大文件之类的,他们读写速度快一些,如果小文件块就小一点2048

[root@localhost ~]# mke2fs -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=540016640
160 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,
2048000
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

  • mke2fs -m 1 /dev/sdb1 指定预留空间大小,这里是1%

[root@localhost ~]# mke2fs -m 1 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
13107 blocks (1.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

  • mkfs.ext4 -m 0.1 /dev/sdb1 格式化成ext4 并预留0.1%的空间给root用户
    在这里插入图片描述
    mkfs.ext4 支持的选项和mk2fs的是一样的
  • mke2fs -i*可以改变inode

五、磁盘挂载

  • mount /dev/sdb1 /mnt/ mnt挂在点在mount下
  • umount /dev/sdb1 卸载挂载点,必须要退出mnt目录
  • umount -l /dev/sdb1 卸载挂载点,可直接卸载,不用退出
  • 开机自动挂载vi /etc/fstab 文件下加入文件路径
    -在这里插入图片描述
    UUID可用blkid命令查看
    写入配置文件/etc/fstab后要mount -a
    会将/etc/fstab里面的所有分区挂载上

第二种方法:vim /etc/rc.local 其他启动会加载哪些设置
可以将mount /dev/sdb5 /mnt/ 命令直接写入/etc/rc.local文件,重启系统时文件会自动执行命令挂载了

blkid 获取分区的uuid和table

手动增加swap空间

如果需要虚拟内存不够的情况,就必须增加一个虚拟磁盘,增加虚拟磁盘的基本思路: 建立swapfile-> 格式化为swap格式->启用该虚拟磁盘

建立swapfile

[root@linux-151 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.394181 秒,266 MB/秒
dd命令:操作磁盘;if指定源(一般是写/dev/zero,它是UNIX系统特有的一个文件,它可以源源不断的提供“0”)of指定目标文件,bs定义块大小,count定义块的数量,bs和count这个两个参数决定了目标文件大小,目标文件大小=bs*count。

格式化

[root@linux-151 mnt]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=3c1465ff-5837-4ecf-948d-7d5719b382c4
文件格式化后,就可以挂载使用

free -m 查看内存使用情况
[root@linux-151 mnt]# free -m
total used free shared buff/cache available
Mem: 1831 113 1459 8 259 1545
Swap: 4095 0 4095
加载swap

[root@linux-151 mnt]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。//虽然提示不安全,但事实已经挂载成功
[root@linux-151 mnt]# blkid /tmp/newdisk
/tmp/newdisk: UUID=“3c1465ff-5837-4ecf-948d-7d5719b382c4” TYPE=“swap”
卸载swap

[root@linux-151 mnt]# swapoff /tmp/newdisk

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值