4.Linux 磁盤、文件系統管理---交換分區及經常使用命令


概述:node

     本篇是上篇博客(http://1992tao.blog.51cto.com/11606804/1900034)的後續內容,價格主要介紹 /etc/fstab 配置文件的使用,swap交換分區的使用,以及各類在磁盤及文件系統管理中的經常使用命令。linux

====================================================================================================vim


/etc/fstab 配置文件

 1.使用方法及語法:centos

設定除根文件系統之外的其餘文件系統可以開機時自動掛載:/etc/fstab緩存

做用bash

  • /etc/fstab每行定義一個要掛載的文件系統及相關屬性:app

6個字段ide

要掛載的設備oop

    設備文件:性能

  • LABEL(LABEL="");

  • UUID(UUID="");

  • 僞文件系統,如:sysfs,proc,tmpfs等

掛載點

  • swap類型的設備的掛載點爲swap;

文件系統類型

掛載選項

  • defaults:使用默認掛載選項;

  • 若是要同時指明多個掛載選項,彼此間逗號分隔;(如:default,acl,noatime,noexec)

轉儲頻率

  • 0:從不備份;

  • 1:天天備份;

  • 2:每隔一天備份;

自檢次序

  • 0:不自檢;;

  • 1:首先自檢,一般只能是根文件系統可用;

  • 2:次級自檢

開機自動掛載定義在此文件中的所支持自動掛載的設備;

  • mount -a

若是對掛載的參數修改,要使其從新生效使用

  • mount -o remount MOUNT_POINT

注意:

  • /etc/fstab 設備名出錯,自檢非0,開機會致使沒法啓動;

  • 排錯方法:mount -o remount,rw /

演示:

# 在 /etc/fstab 配置文件中添加使 /dev/sda3 開機自動掛載到 /mydata
[root@CentOS6 ~]# vim /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Nov  6 11:54:11 2016
#
# 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
#
/dev/mapper/vg0-root    /                       ext4    defaults        1 1
UUID=493db72e-4b0d-4e2a-82fa-5e002f0bd667 /boot                   ext4    defaults        1 2
/dev/mapper/vg0-usr     /usr                    ext4    defaults        1 2
/dev/mapper/vg0-var     /var                    ext4    defaults        1 2
/dev/mapper/vg0-swap    swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sda3		/mydata			ext3    defaults        0 0

# 掛載點事先必定要存在,因此建立掛載點
[root@CentOS6 ~]# mkdir /mydata

# 使用 mount -a 將自動掛載文件中的定義的自動掛載關係
[root@CentOS6 ~]# mount -a
[root@CentOS6 ~]# mount 
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sda3 on /mydata type ext3 (rw)  # 已經掛載完成

[root@CentOS6 ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/mapper/vg0-root  20511356  407732  19055048   3% /
tmpfs                   502068       0    502068   0% /dev/shm
/dev/sda1               194241   34097    149904  19% /boot
/dev/mapper/vg0-usr   10190136 2142576   7523272  23% /usr
/dev/mapper/vg0-var   20511356  480928  18981852   3% /var
/dev/sda3              5169700  141472   4765616   3% /mydata

===============================================================================
# 修改掛載的參數
[root@CentOS6 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Nov  6 11:54:11 2016
#
# 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
#
/dev/mapper/vg0-root    /                       ext4    defaults        1 1
UUID=493db72e-4b0d-4e2a-82fa-5e002f0bd667 /boot                   ext4    defaults        1 2
/dev/mapper/vg0-usr     /usr                    ext4    defaults        1 2
/dev/mapper/vg0-var     /var                    ext4    defaults        1 2
/dev/mapper/vg0-swap    swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=MYDATA		/mydata			ext3    defaults,acl        0 0   # 設備文件使用卷標,而且掛載選項增長acl

# 從新掛載
[root@CentOS6 ~]# mount -o remount  /mydata
[root@CentOS6 ~]# mount
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sda3 on /mydata type ext3 (rw,acl)  # 掛載生效

使用交換分區(swap)

 1.使用方法及語法:

使用場景及基本思路

  • swap,它相似於Windows的虛擬內存,分區時通常指定虛擬內存的大小爲實際內存的2倍,若是你的實際內存超過了8G,那你劃分16G給虛擬內存就足夠平常交換了,若是真的遇到虛擬內存不夠用的狀況,就必須增長一個虛擬磁盤,所以咱們不可能從新給磁盤分區;

  • 增長虛擬內存的基本思路:創建swapfile-->格式化swap格式-->啓用虛擬磁盤。

  • 交換分區是系統RAM的補充

建立交換分區的命令:mkswap

啓用交換分區:swapon

語法:

  • swapon [OPTION]... [DEVICE]

選項:

  • -a:激活定義在 /etc/fstab 文件中的全部swap設備;

  • -s:查看交換空間

  • -p PRIORITY:指定優先級

禁用交換分區:swapoff

語法:

  • swapon [DEVICE]

總結

swap基本設置步驟總結以下:

  1. 建立交換分區(fdisk -t 82 )或者文件(dd if=/dev/zero of=somefile bs=1M count=1024);

  2. 使用 mkswap 寫入特殊簽名; (mkswap device 或者 mkswap somefile)

  3. 在/etc/fstab文件中添加適當的條目;

  4. 使用swapon -a 激活交換空間;

  5. 使用swapon -s 查看交換空間;

swap的優先級

  • 用戶能夠給某個swap指定一個0到32767的優先級;

  • 若是用戶沒有指定,那麼核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一;

  • 先添加的swap的缺省優先級比較高,除非用戶本身指定一個優先級,而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數);

  • 優化性能:分佈存放,高性能磁盤存放

wKiom1itRquA5gNKAABNtcsrQCs298.png

演示:

1.交換分區的啓用和禁用

[root@CentOS6 ~]# blkid /dev/sda6
/dev/sda6: UUID="5d8b9d9c-d2b1-411b-9b5d-55f58602dcbf" TYPE="swap" LABEL="swap_sda6" 

# 建立交換分區,並指明卷標
[root@CentOS6 ~]# mkswap -L MYDATA /dev/sda6
Setting up swapspace version 1, size = 2104476 KiB
LABEL=MYDATA, UUID=30d4d40a-c025-432f-ba18-fa91836556b5

[root@CentOS6 ~]# blkid /dev/sda6
/dev/sda6: UUID="30d4d40a-c025-432f-ba18-fa91836556b5" TYPE="swap" LABEL="MYDATA" 

# 未激活前內存及交換空間的使用狀況
[root@CentOS6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        169        810          0         17         56
-/+ buffers/cache:         95        885
Swap:         2047          0       2047
[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1

# 激活交換空間
[root@CentOS6 ~]# swapon /dev/sda6
[root@CentOS6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        171        809          0         17         56
-/+ buffers/cache:         96        884
Swap:         4103          0       4103
[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1
/dev/sda6                               partition	2104476	0	-2

# 禁用交換空間
[root@CentOS6 ~]# swapoff /dev/sda6
[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1
[root@CentOS6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        169        810          0         17         56
-/+ buffers/cache:         95        885
Swap:         2047          0       2047

2.swap交換分區完整的建立步驟:

 1)磁盤分區爲swap交換分區;使用 mkswap 命令建立交換分區

# 磁盤分區 /dev/sda6 爲交換分區
[root@CentOS6 ~]# fdisk -l /dev/sda

Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00093c28

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        8512     5252256   83  Linux
/dev/sda4            8513       10443    15510757+   5  Extended
/dev/sda5            8513        8905     3156741   83  Linux
/dev/sda6            8906        9167     2104483+  82  Linux swap / Solaris


# 使用 mkswap 命令建立swap文件系統,並寫入卷標
[root@CentOS6 ~]# mkswap -L swap_sda6 /dev/sda6
Setting up swapspace version 1, size = 2104476 KiB
LABEL=swap_sda6, UUID=5d8b9d9c-d2b1-411b-9b5d-55f58602dcbf

[root@CentOS6 ~]# blkid /dev/sda6
/dev/sda6: UUID="5d8b9d9c-d2b1-411b-9b5d-55f58602dcbf" TYPE="swap" LABEL="swap_sda6"

 2)在/etc/fstab文件中添加適當的條目,並激活交換空間

[root@CentOS6 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Nov  6 11:54:11 2016
#
# 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
#
/dev/mapper/vg0-root    /                       ext4    defaults        1 1
UUID=493db72e-4b0d-4e2a-82fa-5e002f0bd667 /boot                   ext4    defaults        1 2
/dev/mapper/vg0-usr     /usr                    ext4    defaults        1 2
/dev/mapper/vg0-var     /var                    ext4    defaults        1 2
/dev/mapper/vg0-swap    swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL=MYDATA		/mydata			ext3    defaults,acl        0 0
/dev/sda6		swap			swap	defaults        0 0  # 添加條目

# 未激活前,交換空間及內存使用狀況
[root@CentOS6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        170        810          0         18         56
-/+ buffers/cache:         95        885
Swap:         2047          0       2047
[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1

# 激活交換空間
[root@CentOS6 ~]# swapon -a
[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1
/dev/sda6                               partition	2104476	0	-2  # 激活成功

[root@CentOS6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        171        809          0         18         56
-/+ buffers/cache:         96        884
Swap:         4103          0       4103

3.建立swap文件增長虛擬內存

[root@CentOS6 ~]# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 34.602 s, 31.0 MB/s

[root@CentOS6 ~]# mkswap -L TEST /swapfile 
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
LABEL=TEST, UUID=784c4394-b1cb-47a9-81de-284cc2ba8f95

[root@CentOS6 ~]# blkid /swapfile
/swapfile: LABEL="TEST" UUID="784c4394-b1cb-47a9-81de-284cc2ba8f95" TYPE="swap" 

[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1

# 激活swap交換分區,能夠看到3個交換分區都已經存在
[root@CentOS6 ~]# swapon /dev/sda6
[root@CentOS6 ~]# swapon /swapfile 
[root@CentOS6 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition	2097148	0	-1
/dev/sda6                               partition	2104476	0	-2
/swapfile                               file		1048572	0	-3

# 交換空間爲3個總和
[root@CentOS6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        906         74          0          4        784
-/+ buffers/cache:        118        862
Swap:         5127          0       5127

和磁盤空間相關的命令

 1.free

free

做用:

  • 內存空間及交換分區使用狀態查看

用法:

  • free [OPTION]

選項:

  • -m: 以MB爲單位;

  • -h:以人類適宜的方式查看

術語:

  • Mem:物理內存的使用狀況;

  • Swap:交換分區的使用狀況 ;

  • -/+ buffers/cache:表示物理內存在不考慮緩存和緩存佔據空間時的使用狀況

       buffers:緩衝,用來緩存寫

       cache:  緩存,迎來緩存讀

演示:

[root@CentOS6 ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          980M       906M        73M       252K       4.8M       786M
-/+ buffers/cache:       115M       864M
Swap:         4.0G         0B       4.0G


 2.df命令

df

做用:

  • 查看磁盤設備的使用狀況

語法:

  • df [OPTION]... [FILE]...

選項:

  • -l:僅顯示本地文件的相關信息;

  • -H:以1000爲單位;

  • -T :文件系統類型;

  • -h:human-readable;

  • -i:顯示inode的使用狀態而非block;

  • -P:以Posix兼容的格式輸出

演示:

[root@centos7 ~]# df -Thi
文件系統       類型     Inode 已用(I) 可用(I) 已用(I)% 掛載點
/dev/sda2      xfs        40M    8.4K     40M       1% /
devtmpfs       devtmpfs  119K     378    119K       1% /dev
tmpfs          tmpfs     123K       1    123K       1% /dev/shm
tmpfs          tmpfs     123K     490    122K       1% /run
tmpfs          tmpfs     123K      13    123K       1% /sys/fs/cgroup
/dev/sda3      xfs        20M     89K     20M       1% /usr
/dev/sda1      xfs       488K     329    488K       1% /boot
tmpfs          tmpfs     123K       1    123K       1% /run/user/0


 

 3.du命令

du

做用:

  • 查看某個目錄或文件所佔空間的大小

語法:

  • du [OPTION]... DIR

選項:

  • -h:human-readable

  • -s:summary

注意:

du -h 和 ls -l 的區別

  • ll-h 即爲 ls -lh 是文件的實際大小;

  • du -sh 顯示文件所佔用的 block大小,而且用du命令查看文件大小的時候,當文件只有1個字節,也會佔用 4KB (linux默認是4k)(1K=1024Byte)

wKioL1itT9CzeWepAABqp9jdUFg914.png

演示:    

[root@centos7 ~]# du -hs /etc
25M	/etc

 4.losetup命令

losetup

做用:

  • 能夠把文件關聯到一個設備,從而用設備名代替文件名;

演示:

[root@centos7 ~]# dd if=/dev/zero of=/tmp/test bs=1M count=500
記錄了500+0 的讀入
記錄了500+0 的寫出
524288000字節(524 MB)已複製,16.2552 秒,32.3 MB/秒

# 爲文件建立 ext4 文件系統
[root@centos7 ~]# mkfs.ext4 /tmp/test 
mke2fs 1.42.9 (28-Dec-2013)
/tmp/test is not a block special device.
不管如何也要繼續? (y,n) y
Discarding device blocks: 完成                            
文件系統標籤=
OS type: Linux
塊大小=1024 (log=0)
分塊大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一個數據塊=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: 完成                            
正在寫入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

# 掛載到本地迴環設備,能夠看到 這裏顯示的是迴環設備名,centos6 顯示的是文件名
[root@centos7 ~]# mount -o loop /tmp/test /mnt
[root@centos7 ~]# df
文件系統          1K-塊    已用     可用 已用% 掛載點
/dev/sda2      41922560  545328 41377232    2% /
devtmpfs         486140       0   486140    0% /dev
tmpfs            500664       0   500664    0% /dev/shm
tmpfs            500664    6840   493824    2% /run
tmpfs            500664       0   500664    0% /sys/fs/cgroup
/dev/sda3      20961280 3027236 17934044   15% /usr
/dev/sda1        496300  140512   355788   29% /boot
tmpfs            100136       0   100136    0% /run/user/0
/dev/loop0       487634    2318   455620    1% /mnt

# loaetup 能夠查看對應的文件名
[root@centos7 ~]# losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         1  0 /tmp/test

# 把一個文件關聯至本地迴環設備,須要的話直接掛載此迴環設備便可
[root@centos7 ~]# losetup /dev/loop10 /tmp/test
[root@centos7 ~]# losetup
NAME        SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0          0      0         1  0 /tmp/test
/dev/loop10         0      0         0  0 /tmp/test


總結:

 要想建立一個文件系統並使用,必需要通過三步:分區,格式化建立文件系統,掛載;

    1.系統分區時使用的命令是 fdisk ,

  • 注意命令選項,分區結束後輸入 w 存盤退出,這是若是出現 wraning報警,說明要 同步內核分區列表,(CentOS 6 使用partx -a 或者partx -d --nr ;CentOS 7 使用partprobe 命令)

    2.格式化,建立文件系統

  • 這裏要注意,建立文件系統的類型的命令,通常使用mkfs.命令便可,對於swap要使用mkswap命令,同時這些命令後可跟一些選項 -L 建立卷標,-b指定文件塊大小,-m管理員預留空間等;

   3.掛載

  • 建立好的文件系統要想可以使用,就必需要掛載到根文件系統上的一個目錄

  • 這裏用到的命令就是:mount、swapon和umount

  • 注意命令的選項:mount -a,swapon -a(激活全部交換分區)

                                  mount -o remount(從新掛載)

  4.配置文件/etc/fstab

  • 要想將開機自動掛載,就要將掛載寫到配置文件中,這裏注意書寫的格式                      





練習:

寫一個腳本,完成以下功能:

   (1) 列出當前系統識別到的全部磁盤設備

  (2) 如磁盤數量爲1,則顯示其空間使用信息,不然,則顯示最後一個磁盤上的空間使用信息

wKiom1fHktzSutItAABzQwwu7qA193.png

相關文章
相關標籤/搜索