专栏首页运维小白Linux基础(day15)

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 条评论
登录 后参与评论

相关文章

  • 4.7/4.8 磁盘挂载

    只有格式化后,才能挂在文件系统 先把磁盘中的分区删除(不管是否分区,都可格式化) 然后格式化文件系统,mkfs.xfs /dev/sdb [root@hf-01...

    运维小白
  • 4.5/4.6 磁盘格式化

    windows和Linux系统格式 在分区后,磁盘需要格式化 Windows中,有NTFS、fat格式,其中fat格式基本已经不用(过时) Linux中,ce...

    运维小白
  • Linux基础(day56)

    14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早...

    运维小白
  • NFS客户端mount挂载优化

    NFS服务可以让不同的客户端挂载使用同一个上目录,作为共享存储使用,这样可以保证不同节点的客户端数据的一致性,在集群环境中经常用到

    民工哥
  • Bind的编译安装

    编译安装具有高度可定制性,非常适用于有特殊需求的场合。这里我们将以Centos 6为例,编译安装bind程序包 并从零构建DNS服务器

    用户1456517
  • Linux挂载

    指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

    用户7605975
  • 建议收藏 | Linux常用命令

    cat,又是一个相对高频率的命令。比较官方的说法是命令用于链接文件并打印到标准输出设备上。这个文本输出命令可以用来查看文件内容,创建内容等,下面我们介绍几个比较...

    数字芯片社区
  • 014.Docker Harbor+Keepalived+LVS+共享存储高可用架构

    共享后端存储是一种比较标准的方案,将多个Harbor实例共享同一个后端存储,任何一个实例持久化到存储的镜像,都可被其他实例中读取。通过前置LB组件,如Keepa...

    木二
  • Python基于Python实现批量上传文件或目录到不同的Linux服务器

    批量上传文件、目录(包括该目录下的所有文件,子目录及其文件)到不同的Linux服务器

    授客
  • 【每日算法Day 106】打家劫舍系列最后一弹,撑住你就赢了!

    在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为根。除了根之外,每栋房子有且只有一个父房子与之相连。一番...

    godweiyang

扫码关注云+社区

领取腾讯云代金券