Linux基础(day15)

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命令参数用法

修改文件文件系统两种命令

  1. mke2fs -t ext4 修改为ext4格式的文件系统
  2. 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 ~]# 
  1. 在格式化好后xfs格式的文件系统后
  2. 使用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.
  1. rw,表示可读写
  2. suid,表示允许这个分区中的文件设置suid权限
  3. dev 就不用管了
  4. exec,表示是否可执行。若改为 no exec 那挂载下面的分区文件就没有可执行权限了
  5. auto,表示自动挂载
  6. nouser,表示是否允许普通用户去挂载(默认只能是root用户)
  7. 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
  1. 第一列表示为,就是设备号,还可以写成/dev/sdb
  2. 第二列表示为,挂载点
  3. 第三列表示为,分区格式
  4. 第四列表示为,挂载选项(默认为defaults)
  5. 第五列表示为,是否备份,改为1就是备份,但基本没有用
  6. 第六列表示为,设置优先级,作用是是否检测。重新启动时,它会检测磁盘是否有错误,在设置成 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 ~]# 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

win10 64位系统中安装多个jdk版本的切换问题

由于电脑安装了myeclipse2017,同时又安装了idea2017,idea是最新版,必须使用jdk1.8以上,而myeclipse中的项目又需要低版本的j...

29420
来自专栏Dato

Maven的作用是什么

现在我们开发的项目基本上都是maven项目,maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能。 那就说说究...

364110
来自专栏影子

idea/eclipse下Maven工程集成web服务(tomcat、jetty)

38890
来自专栏增长技术

Android Debug Bridge

Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具, 采用了客户端-服务器模型,包括三个部分:

38820
来自专栏小狼的世界

修改服务的运行权限,解决SVN Post Commit问题

之前在Windows Server中安装了VirtualSVN Server,然后设置了Post Commit Hooks,在提交代码到版本库之后,将代码che...

13130
来自专栏机器学习算法与Python学习

手册 | Linux 运维人员最常用 150 个命令汇总

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 本周六送5本《TensorFlow实...

32660
来自专栏伦少的博客

centos7 hadoop 单机模式安装配置

转载请务必注明原创地址为:http://dongkelun.com/2018/03/23/hadoopConf/

549110
来自专栏网络

JavaEE——jsp介绍

jsp介绍: jsp全称Java Server Page,它是Servlet的扩展,其作用就是简化网站创建过程和维护动态网站。 jsp运作原理: 浏览器访问in...

27270
来自专栏木子昭的博客

将Python程序(.py)转换为Windows可执行文件(.exe)第四步:运行测试

python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! http://www.jia...

384100
来自专栏北京马哥教育

巧用HTTP 响应头部提高 Web 安全性

在 Web 服务器做出响应时,为了提高安全性,在 HTTP 响应头中可以使用的各种响应头字段。 1、X-Frame-Options 该响应头中用于控制是否在浏览...

35170

扫码关注云+社区

领取腾讯云代金券