Linux基础(day15)
时间:2022-04-27
本文章向大家介绍Linux基础(day15),主要内容包括4.5/4.6 磁盘格式化、mount命令、格式化新的分区、总结、4.7/4.8 磁盘挂载、配置文件/etc/fstab、4.9 手动增加swap空间、mkswap命令格式化、swapon命令、卸载文件,swapoff命令、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
4.5/4.6 磁盘格式化
windows和Linux系统格式
- 在分区后,磁盘需要格式化
- Windows中,有NTFS、fat格式,其中fat格式基本已经不用(过时)
- Linux中,centos7支持xfs、ext4、ext3、ext2、nodev proc、nodev devpts、iso9660、vfat、hfs、hfsplus
[root@localhost ~]# cat /etc/filesystems //查看centos7所支持的系统格式
xfs //系统默认的支持的格式
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*
[root@localhost ~]#
- 在装Linux系统的时候,就是xfs
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 1.2G 17G 7% /
devtmpfs 483M 0 483M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 99M 0 99M 0% /run/user/0
- 其中的/ 和/b oot 就是xfs
mount命令
- mount命令,查看分区的文件系统
- 在其中只要找到/dev/ 开头的,查看后面的文件系统xfs
- swap 是swap分区的,是自己的一种格式
- 在linux系统中的 / /boot 都是使用 xfs 格式的文件系统
- 在centos6和之前的版本中,都是使用 ext 格式的文件系统
- centos6中,使用 ext4
- centos5中,使用 ext3
- 再往之前文件系统格式,是ext2
格式化新的分区
- 查看系统磁盘新建的分区
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c928b
设备 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 字节
磁盘标签类型:dos
磁盘标识符:0x3ca78df9
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 16779263 8388608 83 Linux
mke2fs命令
- mk2fs命令,格式化分区
- -t 格式 ,指定所需要的文件格式化系统
- -b ,指定 块的大小(inode块大小默认4K)
- 对比ls -lh和du -sh 查看文件的大小
[root@localhost ~]# echo 1 > 2.txt
[root@localhost ~]# ls =lh 2.txt
ls: 无法访问=lh: 没有那个文件或目录
2.txt
[root@localhost ~]# ls -lh 2.txt //查看文件的大小
-rw-r--r--. 1 root root 2 11月 3 15:48 2.txt
[root@localhost ~]# du -sh 2.txt //查看块大小
4.0K 2.txt
[root@localhost ~]# du -sb 2.txt
2 2.txt
这里会看到ls -lh和du -sb查看文件的大小相同
而ls -lh查看的是文件的大小,du -sh 查看是块的大小
mke2fs命令参数用法
修改文件文件系统两种命令
- mke2fs -t ext4 修改为ext4格式的文件系统
- mkfs.ext4 修改为ext4格式的文件系统
- mke2fs -t xfs -b 2048 /dev/sdb1 指定文件的系统为ext4,并设置磁盘大小为2048M
- 这样就会格式化为ext4格式的文件系统
[root@localhost ~]# mke2fs -t ext4 -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 4194304 blocks
209715 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=272629760
256 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, 3981312
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
mkfs.ext4命令用法
- mkfs.ext4 /dev/sdb1 把磁盘划分为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
524288 inodes, 2097152 blocks
104857 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2147483648
64 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, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
- 这里会发现两种命令都将磁盘划分为了ext4格式的文件系统
切换成xfs格式的文件系统
- mkfs.xfs -f /dev/sdb1 划分成xfs格式的文件系统(-f 表示强制 )
- mke2fs命令是无法划分为xfs系统的
[root@localhost ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=524288 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2097152, 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
[root@localhost ~]#
- 在格式化好后xfs格式的文件系统后
- 使用mount命令是无法查看到的,因为还未进行挂载
- mke2fs命令无法格式化为xfs格式的文件系统
[root@localhost ~]# mke2fs -t xfs -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Your mke2fs.conf file does not define the xfs filesystem type.
Aborting...
blkid命令
- blkid命令,查看还未挂载的分区
- 会看到文件的文件系统
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="ebdc3a7b-d16d-4bd8-8019-275e587d359e" TYPE="xfs"
mke2fs命令的其他用法
- mke2fs -b 指定块的大小
- mke2fs -b 8192 /dev/sdb1 指定块大小为8K
- mke2fs -b 2048 /dev/sdb1 指定块大小为4k (默认)
[root@hf-01 ~]# mke2fs -b 8194 /dev/sdb1
Warning: blocksize 8194 not usable on most systems.
mke2fs 1.42.9 (28-Dec-2013)
mke2fs: 8192-byte blocks too big for system (max 4096)
无论如何也要继续? (y,n) n
[root@hf-01 ~]# mke2fs -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
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 指定这个分区,预留空间的大小
- mke2fs -m 1 /dev/sdb1 表示预留空间大小为1%,默认是ext2 格式的文件系统
- mke2fs -t ext4 -m 1 /dev/sdb1 表示使用ext4格式的文件大小,并预留空间大小为1%
[root@hf-01 ~]# mke2fs -t ext4 -m 1 /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
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表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
- mke2fs -i 指定多少个字节对应着1个inode
- 最低是1个块对应着1个inode
[root@hf-01 ~]# mke2fs -i 8192 /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
655360 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
16384 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: 完成
[root@hf-01 ~]#
mke2fs和mkfs.ext4
- mke2fs -t ext4 -m 0.1 /dev/sdb1
- mkfs.ext4 -m 0.1 /dev/sdb1
- 这个命令是一直的
总结
- mkfs.ext4和mke2fs,这两个命令支持的选项是一致的
- inode,在格式化分区的时候创建的,4个块对应着1个inode
4.7/4.8 磁盘挂载
只有格式化后,才能挂在文件系统
- 先把磁盘中的分区删除(不管是否分区,都可格式化)
- 然后格式化文件系统,mkfs.xfs /dev/sdb
[root@hf-01 ~]# mkfs.xfs -f /dev/sdb
meta-data=/dev/sdb isize=256 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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/sdb 命令查看文件系统
[root@hf-01 ~]# blkid /dev/sdb
/dev/sdb: UUID="fdf63a90-eaf9-4cd0-b82c-5afd2965da2a" TYPE="xfs"
- Linux系统中,磁盘要想访问,必须挂载到一个挂载点上(挂载点就是目录)
- 使用mount /dev/sdb /mnt/命令进行挂载
[root@hf-01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 2.4G 16G 14% /
devtmpfs 489M 0 489M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 494M 6.7M 487M 2% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/sda1 197M 75M 123M 38% /boot
[root@hf-01 ~]# mount /dev/sdb /mnt/
[root@hf-01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 2.4G 16G 14% /
devtmpfs 489M 0 489M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 494M 6.7M 487M 2% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/sda1 197M 75M 123M 38% /boot
/dev/sdb 20G 33M 20G 1% /mnt
会看到最后一行,多了一个分区,也可称之为磁盘
- 在使用mount命令就可以看到磁盘的文件系统
- 磁盘卸载掉,使用umount命令
[root@hf-01 ~]# cd /mnt/
[root@hf-01 mnt]# ls
[root@hf-01 mnt]# touch 1.txt 2.txt
[root@hf-01 mnt]# mkdir 124
[root@hf-01 mnt]# cd
[root@hf-01 ~]# umount /dev/sdb
[root@hf-01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 2.4G 16G 14% /
devtmpfs 489M 0 489M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 494M 6.7M 487M 2% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/sda1 197M 75M 123M 38% /boot
[root@hf-01 ~]#
- 若是在当前目录下,可以umount -l /mnt/ 其中 l 表示lazy懒惰的意思
[root@hf-01 ~]# mount /dev/sdb /mnt/
[root@hf-01 ~]# ls /mnt
124 1.txt 2.txt
[root@hf-01 ~]# cd /mnt/
[root@hf-01 mnt]# umount /dev/sdb
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
[root@hf-01 mnt]# umount -l /mnt/
[root@hf-01 mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 18G 2.4G 16G 14% /
devtmpfs 489M 0 489M 0% /dev
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 494M 6.7M 487M 2% /run
tmpfs 494M 0 494M 0% /sys/fs/cgroup
/dev/sda1 197M 75M 123M 38% /boot
mount和umount命令
mount命令
- mount命令,用于加载文件系统到指定的加载点
- 格式: mount /dev/sdb /mnt/ 其中/dev/sdb就是那个磁盘,/mnt/表示挂载点
- 挂载点就是磁盘的入口,没有挂载点就无法在磁盘中进行读写
mount命令用法
- man mount
- 然后 /defaults 去搜索
- 不加任何选项,包含defaults用法,默认包含以下权限
defaults
Use default options: rw, suid, dev, exec, auto, nouser, and async.
- rw,表示可读写
- suid,表示允许这个分区中的文件设置suid权限
- dev 就不用管了
- exec,表示是否可执行。若改为 no exec 那挂载下面的分区文件就没有可执行权限了
- auto,表示自动挂载
- nouser,表示是否允许普通用户去挂载(默认只能是root用户)
- async,表示不会实时同步
- mount -o remount,rw /dev/foo /dir 表示重新挂载
umount命令
- umount命令,用于卸载已经加载的文件系统
- 格式: umount /dev/sdb
- 参数: -l 可以在当前目录下删除磁盘
- umount -l /mnt/
配置文件/etc/fstab
- /etc/fstab配置文件,系统再启动中,默认挂载的磁盘和分区都是在这个文件中去配置的
#
UUID=ce0b257e-62c5-4355-9117-b1edc7085e58 / xfs defaults 1 1
UUID=a9ea9597-52e8-4d73-8975-0ecb3970c760 /boot xfs defaults 1 2
UUID=06c3de3e-7c95-4f75-905e-c5d4fbf4a5fa swap swap defaults 0 0
- 第一列表示为,就是设备号,还可以写成/dev/sdb
- 第二列表示为,挂载点
- 第三列表示为,分区格式
- 第四列表示为,挂载选项(默认为defaults)
- 第五列表示为,是否备份,改为1就是备份,但基本没有用
- 第六列表示为,设置优先级,作用是是否检测。重新启动时,它会检测磁盘是否有错误,在设置成 1 和 2 就是去检测,1 的级别比 2 更高
#
# /etc/fstab
# Created by anaconda on Sun Aug 20 21:03:05 2017
#
# 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=ce0b257e-62c5-4355-9117-b1edc7085e58 / xfs defaults 1 1
UUID=a9ea9597-52e8-4d73-8975-0ecb3970c760 /boot xfs defaults 1 2
UUID=06c3de3e-7c95-4f75-905e-c5d4fbf4a5fa swap swap defaults 0 0
这里自己添加的
/dev/sdb /mnt xfs defaults 0 0
若想写UUID,可以使用blkid命令去查看填写
4.9 手动增加swap空间
创建虚拟磁盘
- dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
- dd 命令是用来操作磁盘的,可读可写
- if 指定从哪里去读
- /dev/zero 是Linux系统中的一个造零器,可以产生源源不断的0
- of 指定将这些 0 写到那里去
- bs 指定每一个块的大小
[root@hf-01 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.728387 秒,144 MB/秒
[root@hf-01 ~]# du -sh /tmp/newdisk
100M /tmp/newdisk
[root@hf-01 ~]#
mkswap命令格式化
- swap是文件的特有的一种文件系统
- mkswap 命令,进行格式化
- 需要加 -f选项
[root@hf-01 ~]# mkswap -f /tmp/newdisk //格式化swap空间
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=7355a547-2562-4320-8470-cff6b7bda975
swapon命令
- swapon命令,将swap加载到现有的swap上去
[root@hf-01 ~]# free -m //查看磁盘使用情况
total used free shared buffers cached
Mem: 987 793 193 6 0 209
-/+ buffers/cache: 583 403
Swap: 2047 0 2047
[root@hf-01 ~]# swapon /tmp/newdisk //添加swap空间添加到现有的swap上去
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@hf-01 ~]# free -m
total used free shared buffers cached
Mem: 987 793 193 6 0 209
-/+ buffers/cache: 583 403
Swap: 2147 0 2147
会看到添加swap的时候,提示不安全,但free -m查看的的时候,会看到添加成功
- 更改/tmp/newdisk的权限
[root@hf-01 ~]# chmod 0600 /tmp/newdisk
卸载文件,swapoff命令
- swapoff命令,卸载文件,减少swap空间
[root@hf-01 ~]# swapoff /tmp/newdisk
[root@hf-01 ~]# free -m
total used free shared buffers cached
Mem: 987 793 193 6 0 209
-/+ buffers/cache: 583 403
Swap: 2047 0 2047
[root@hf-01 ~]#
这时会看到swap空间恢复原有大小了
- rm -f命令删除文件
[root@hf-01 ~]# rm -f /tmp/newdisk
[root@hf-01 ~]#
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法