概述:node
本篇是上篇博客(http://1992tao.blog.51cto.com/11606804/1900034)的後續內容,價格主要介紹 /etc/fstab 配置文件的使用,swap交換分區的使用,以及各類在磁盤及文件系統管理中的經常使用命令。linux
====================================================================================================vim
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) # 掛載生效
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基本設置步驟總結以下:
建立交換分區(fdisk -t 82 )或者文件(dd if=/dev/zero of=somefile bs=1M count=1024);
使用 mkswap 寫入特殊簽名; (mkswap device 或者 mkswap somefile)
在/etc/fstab文件中添加適當的條目;
使用swapon -a 激活交換空間;
使用swapon -s 查看交換空間;
★swap的優先級
用戶能夠給某個swap指定一個0到32767的優先級;
若是用戶沒有指定,那麼核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一;
先添加的swap的缺省優先級比較高,除非用戶本身指定一個優先級,而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數);
優化性能:分佈存放,高性能磁盤存放
演示:
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)
演示:
[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,則顯示其空間使用信息,不然,則顯示最後一個磁盤上的空間使用信息