第五课预习内容
说明: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