zoukankan      html  css  js  c++  java
  • Linux学习(十四)磁盘格式化、磁盘挂载、手动增加swap空间

    一、磁盘格式化

    分好去的磁盘需要格式化之后才可以使用。磁盘分区一般用mke2fs命令或者mkfs.filesystemtype。这个filesystemtype分为ext4,ext3,xfs等等。xfs是centos7自带的文件系统格式。

    那么怎么查看当前磁盘支持的文件系统呢?

    [root@ruanwenwu02 ~]# cat /etc/filesystems 
    xfs
    ext4
    ext3
    ext2
    nodev proc
    nodev devpts
    iso9660
    vfat
    hfs
    hfsplus
    *

    再看看已经挂载后的磁盘:

    [root@ruanwenwu02 ~]# mount|grep "/dev/sd*"
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
    /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    mke2fs有几个参数:-b指定块大小,-m指定预留百分比,-i指定每个inode节点大小。

    现在我们使用mke2fs格式化xfs:

    [root@ruanwenwu02 ~]# mke2fs -t xfs /dev/sdb1
    mke2fs 1.42.9 (28-Dec-2013)
    
    Your mke2fs.conf file does not define the xfs filesystem type.
    Aborting...
    [root@ruanwenwu02 ~]# find / -type f -name "mke2fs.conf"
    /etc/mke2fs.conf
    [root@ruanwenwu02 ~]# ^C
    [root@ruanwenwu02 ~]# vim /etc/mke2fs.conf 

    失败,根据提示查看配置文件,发现配置文件中没有xfs文件系统的配置。

    其实除了mke2fs命令可以格式化磁盘,另一个命令mkfs.xfs也可以,想对应的还有mkfs.ext4,mkfs.ext3等等:

    [root@ruanwenwu02 ~]# mkfs.xfs /dev/sdb1
    mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).
    mkfs.xfs: Use the -f option to force overwrite.
    [root@ruanwenwu02 ~]# mkfs.xfs -f /dev/sdb1
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=262144, 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

    通过实验,我们发现mkfs.xfs不支持-b(块的大小)选项,也不支持-m(预留空间百分比)和-i(每个inode大小)选项。但是mkfs.ext4是支持的:

    [root@ruanwenwu02 ~]# mkfs.ext4 -b 2048 -m 0.1 /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
    65536 inodes, 524288 blocks
    524 blocks (0.10%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=268959744
    32 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
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (16384 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成 

    用mke2fs方法也能实现,事实上mke2fs和mkfs.ext4基本上是等同的。默认的块大小是4096。

    [root@ruanwenwu02 ~]# mke2fs -t 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
    65536 inodes, 262144 blocks
    13107 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=268435456
    8 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (8192 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成

    通过观察发现,如果默认一个块是4096byte,那么一个Inode是4个块。如果我们把每个Inode调成8192,那么看看:

    [root@ruanwenwu02 ~]# mke2fs -i 8192 -b 4096 /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
    131072 inodes, 262144 blocks
    13107 blocks (5.00%) reserved for the super user
    第一个数据块=0
    Maximum filesystem blocks=268435456
    8 block groups
    32768 blocks per group, 32768 fragments per group
    16384 inodes per group
    Superblock backups stored on blocks: 
            32768, 98304, 163840, 229376

    发现节点数增加了,块数没有增加。

    查看电脑上已经挂载的磁盘:

    [root@ruanwenwu02 ~]# mount | grep "/dev/sd*"
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
    /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    二、磁盘挂载

    磁盘需要挂载之后才可以读写。挂载需要找一个挂载点,比如/,/boot/这都是挂载点。我们先看看机器上有哪些磁盘是可以挂载的:

    [root@ruanwenwu02 ~]# fdisk -l
    
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x00036cf2
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048      411647      204800   83  Linux
    /dev/sda2          411648     4507647     2048000   82  Linux swap / Solaris
    /dev/sda3         4507648    41943039    18717696   83  Linux
    
    磁盘 /dev/sdb:4294 MB, 4294967296 字节,8388608 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x2f45f776
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048     2099199     1048576   83  Linux
    /dev/sdb2         6293504     7931903      819200   83  Linux
    /dev/sdb3         2099200     6293503     2097152    5  Extended
    /dev/sdb5         2101248     4198399     1048576   83  Linux
    /dev/sdb6         4200448     5838847      819200   83  Linux

    /dev/sdb上的分区都没有挂载,那我们现在挂载一下/dev/sdb1/:

    [root@ruanwenwu02 ~]# mount /dev/sdb1 /mnt
    [root@ruanwenwu02 ~]# mount |grep "/dev/sd*"
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
    /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/sdb1 on /mnt type ext2 (rw,relatime,seclabel)

    查看磁盘属性:

    [root@ruanwenwu02 ~]# blkid
    /dev/sda1: UUID="4d7f0a80-47f8-4b8a-a677-4c14b801d43e" TYPE="xfs" 
    /dev/sda2: UUID="c1ce52b4-b264-4de0-a7d6-4f33d1ab4a2d" TYPE="swap" 
    /dev/sda3: UUID="604bc673-7f8d-4355-919f-ed6740a8efc8" TYPE="xfs" 
    /dev/sdb1: UUID="0f8ee81b-d2df-48d3-adcd-ee79965ca313" TYPE="ext2" 
    /dev/sr0: UUID="2016-12-05-13-55-45-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

    卸载磁盘:

    [root@ruanwenwu02 ~]# umount /dev/sdb1
    [root@ruanwenwu02 ~]# !moun
    mount |grep "/dev/sd*"
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
    /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    新加入的磁盘要加入开机自动挂载的方法:

    vim /etc/fstab

    #
    # /etc/fstab
    # Created by anaconda on Tue Oct 17 04:46:42 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=604bc673-7f8d-4355-919f-ed6740a8efc8 /                       xfs     defaults        0 0
    UUID=4d7f0a80-47f8-4b8a-a677-4c14b801d43e /boot                   xfs     defaults        0 0
    UUID=c1ce52b4-b264-4de0-a7d6-4f33d1ab4a2d swap                    swap    defaults        0 0

    文件内容每行被用空格分成5部分,每部分的意义:

    uuid=604b... 的意思是磁盘id

    xfs 磁盘文件系统

    defaults : 挂载默认选项

    0 : 备份(无意义)

    0:0开启不检查磁盘,如果要检查的话,一般给/boot分区设置为1,其他设置为2

    添加一个磁盘启动项:

    #
    # /etc/fstab
    # Created by anaconda on Tue Oct 17 04:46:42 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=604bc673-7f8d-4355-919f-ed6740a8efc8 /                       xfs     defaults        0 0
    UUID=4d7f0a80-47f8-4b8a-a677-4c14b801d43e /boot                   xfs     defaults        0 0
    UUID=c1ce52b4-b264-4de0-a7d6-4f33d1ab4a2d swap                    swap    defaults        0 0
    /dev/sdb1                                                         xfs     defaults        

    查看帮助使用命令:man fstab:

    defaults
                         use default options: rw, suid, dev, exec, auto, nouser, and async.

     三、手动增加swap空间

    一般我们不会用到比较大的swap空间。如果内存为4G,我们最多分配8G的swap空间。如果某些应用程序要求使用那么大的空间,我们可以进行手动扩容。

    步骤:

    1.创建虚拟磁盘:

    [root@ruanwenwu02 ~]# dd if=/dev/zero of=/tmp/testdisk bs=1M count=200
    记录了200+0 的读入
    记录了200+0 的写出
    209715200字节(210 MB)已复制,4.59577 秒,45.6 MB/秒
    [root@ruanwenwu02 ~]# ls -ld /tmp/testdisk 
    -rw-r--r--. 1 root root 209715200 11月  4 09:33 /tmp/testdisk
    [root@ruanwenwu02 ~]# ls -ldh /tmp/testdisk 
    -rw-r--r--. 1 root root 200M 11月  4 09:33 /tmp/testdisk
    [root@ruanwenwu02 ~]# mkswap /tmp/testdisk 
    正在设置交换空间版本 1,大小 = 204796 KiB

    这里面有几点需要说明一下。

    dd命令的 if参数的意思是:数据源从哪里来。/dev/zero是个造零器。of的意思是到那里去。bs是块的大小。count是多少块。

    mkswap是将造的空间转换成swap空间。

    2.将虚拟磁盘的空间增加到swap:

    [root@ruanwenwu02 ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            976         119         452           6         404         665
    Swap:          1999           0        1999
    [root@ruanwenwu02 ~]# swapon /tmp/testdisk 
    swapon: /tmp/testdisk:不安全的权限 0644,建议使用 0600。
    [root@ruanwenwu02 ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            976         119         452           6         404         664
    Swap:          2199           0        2199
    [root@ruanwenwu02 ~]# chmod 600 /tmp/testdisk 
    [root@ruanwenwu02 ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            976         119         452           6         404         664
    Swap:          2199           0        2199

     如果要删除新增的空间,使用命令:

    [root@ruanwenwu02 ~]# swapoff /tmp/testdisk 
    [root@ruanwenwu02 ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            976         117         454           6         404         667
    Swap:          1999           0        1999
    坚持!
  • 相关阅读:
    无法嵌入互操作类型“ADOX.CatalogClass”。请改用适用的接口。
    编码:隐匿在计算机软硬件背后的语言(3)--二进制加法器
    编码:隐匿在计算机软硬件背后的语言(2)--二进制
    C#中Mutex的用法
    C#中创建二维数组,使用[][]和[,]的区别
    git同时存在两个账号(在同一台电脑上)——三步完成(已修正)
    C++之标准库vector
    C++之标准库map
    sublime和vscode 格式化Json ——两步走
    二十八、linux下权限管理chmod
  • 原文地址:https://www.cnblogs.com/doubilaile/p/7764928.html
Copyright © 2011-2022 走看看