1. 程式人生 > >磁盤格式化,磁盤掛載,手動添加swap空間

磁盤格式化,磁盤掛載,手動添加swap空間

高清圖片 一個數 ext 如何 內核 卸載 maximum count 使用

有了分區以後,我們還要格式化,如果不格式化,那麽磁盤就無法使用,這個windows是一樣的。windows支持NTFS格式和fat格式,那麽linu支持什麽樣的分區格式呢?我們輸入如下命令

[root@localhost ~]# cat /etc/filesystems
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*
這是linux中支持的分區文件格式,其中xfs是centos7默認分區格式,比如/和boot,這都是xfs文件系統,在centos以前的版本都是ext文件系統,我們以後格式化可以將磁盤格式成ext文件系統,但是在centos中默認的就是xfs格式,那麽我們怎樣查看這個分區系統是什麽呢?我們可以輸入mount這個命令

[root@localhost ~]# mount | grep -n ‘xfs‘
22:/dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
28:/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

現在以xfs文件系統去格式化新的磁盤,格式化輸入mk2fs命令,他有幾個常用參數,-t,指定格式化成什麽樣的文件系統(默認xfs)。
下面我們先來試驗一下,先將/dev/sdb1格式成ext4文件系統
[root@localhost ~]# 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
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
這樣我們就成功的將sdb1格式成ext4的文件系統了

-b:指定塊大小,每個數據塊支持1024b,2048b以及4096b。
假設我們將塊設置成8192(一般我們存音樂,視頻,高清圖片會將塊設置的比較大,他的讀寫也會更快,如果我們存儲的文件較小,那我們就設置的小一些,一般我們就保持默認就可以。),系統會提示我們是否繼續。
[root@localhost ~]# mke2fs -b 8192 /dev/sdb1
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.42.9 (28-Dec-2013)
mke2fs: 8192-byte blocks too big for system (max 4096)
無論如何也要繼續? (y,n)
如果想要繼續,輸入“y”即可,如果不想繼續,輸入“n”。

-m:指定這個分區預留的空間大小
默認是5%(26214 blocks (5.00%) reserved for the super user),我們將它更改成預留0.1%
[root@localhost ~]# mke2fs -m 0.1 /dev/sdb1
524 blocks (0.10%) reserved for the super user
這樣可以磁盤最大化使用

-i:指定多少個字節對應一個inode,最低是1個塊指定一個inode。默認的是1:4的關系,然後我們可以自定義成8192
[root@localhost ~]# mke2fs -i 8192 -t ext4 /dev/sdb1
131072 inodes, 524288 blocks(這是默認情況,基本上是1:4)
262144 inodes, 524288 blocks(這是更改完後的情況,基本上就是1:2的關系了,改變成功)

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

即使我們已經格式化過一次了,但是我們還能繼續格式化這塊磁盤,需要註意的是mke2fs不支持xfs文件系統,但是我們也有辦法,可以使用mkfs命令,他可以將磁盤格式成xfs文件系統,不要忘記,xfs後面接參數-f
[root@localhost ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, 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

這樣我們就成功的將sdb1格式成xfs文件系統了,只不過我們mount時時看不到sdb1的,因為我們還沒有掛載磁盤,如果想查看,只要輸入blkid這個命令
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="711e9e10-bdbc-4ed1-8fa2-80817b7b717d" TYPE="xfs"(這就是我們剛格式化的sdb1)

格式化完後我們就要將磁盤掛載到掛載點上才能使用,掛載的命令是mount,他可以查看文件類型,也可以掛載格式化後的磁盤。我們先將sdb1掛載到mnt目錄下。(mnt目錄為掛載點,它是一個磁盤的入口。)
[root@localhost ~]# mount /dev/sdb1 /mnt/
掛載後查詢一下,發現新增的sdb1已經在mnt目錄下掛載成功
[root@localhost ~]# df -hl
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 28G 993M 27G 4% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 6.9M 488M 2% /run
tmpfs 495M 0 495M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb1 1.9G 6.0M 1.8G 1% /mnt

卸載磁盤的命令為umount,如果我們在進入了磁盤中,那麽卸載時不成功的
[root@localhost mnt]# umount /dev/sdb1
umount: /mnt:目標忙。
(有些情況下通過 lsof(8) 或 fuser(1) 可以
找到有關使用該設備的進程的有用信息)
只有退出來,才能卸載成功
[root@localhost mnt]# cd
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -hl
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 28G 993M 27G 4% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 6.9M 488M 2% /run
tmpfs 495M 0 495M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
這時發現,sdb1已經卸載成功了。然後我們還可以繼續掛載次磁盤。
我們也可以不退出而直接卸載,只要加參數-l(懶人模式)。

開機自動掛載/etc/fstab配置文件。系統啟動默認自動掛載哪些磁盤和哪些分區,都是在在這個裏面配置的。
[root@localhost ~]# vi /etc/fstab
#

/etc/fstab

Created by anaconda on Thu Dec 14 21:57:25 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=5a11078d-d0e8-454b-9ba2-4795ad52c2ba / xfs defaults 0 0
UUID=5072d2a6-bab9-40e0-8503-a0b570a0e1d8 /boot xfs defaults 0 0
UUID=2f04490d-9a52-44f3-be93-c2b950fb6819 swap swap defaults 0 0
/dev/sdb1 /mnt xfs defaults 0 0

UUID:我們可以通過blkid來查看,每個分區都有自己的UUID。
第一列:我們除了可以寫入UUID外,也可以寫入要掛在磁盤的名字。
第二列:我們要寫入掛載點。
第三列:我們要寫入文件的分區格式。
第四列:掛載選項,只要保持默認,跟上面輸入的一樣即可。
第五列:是否備份,我們寫入0即可
第六列:是否檢測,寫入0是不檢測,寫入1是檢測,寫入2也是檢測,1級別更高。我們寫0即可。

如果當我們的某一個服務需要很大的swap,我們又不可能重做系統,那麽我們有一個方法,手動增加。
首先,我們要虛擬出一個磁盤
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
在這裏dd是用來操作磁盤的,if是指定哪裏去讀,/dev/zero是linux內核中的一個特有文件,能產生源源不斷的0,of指定將產生的0寫入到哪裏去,bs是指定每個塊的大小,這裏是每個1M,count=100,100*1=100M,就是newdisk的大小。
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
記錄了100+0 的讀入
記錄了100+0 的寫出
104857600字節(105 MB)已復制,0.358612 秒,292 MB/秒
然後我們查詢一下看看是否成功
[root@localhost ~]# du -sh /tmp/newdisk
100M /tmp/newdisk
我們已經成功創建了一個100M的虛擬磁盤。

然後我們格式化,然而sawp是一個特殊的文件系統,所以我們要用mkswap去格式化
[root@localhost ~]# mkswap -f /tmp/newdisk
正在設置交換空間版本 1,大小 = 102396 KiB
無標簽,UUID=81efcdde-3c16-49ac-aff1-19604c00cb57

格式化完成後,我們要用swapon這個命令把它加載到現在的swap上去,首先我們先查詢一下現在的swap有多大
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 988 125 618 6 244 694
Swap: 2047 0 2047
現在的swap是2047兆,然後我們給新的加載到以前的swap上
[root@localhost ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的權限 0644,建議使用 0600。
掛在後查詢
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 988 125 618 6 244 694
Swap: 2147 0 2147
雖然上面提示說不安全,但是我們也掛載上去了,增加了空間。
為了安全起見,我們還是改變一下他的權限。

如果我們不想要這個新的swap了,只要用swapoff卸載它就可以了
[root@localhost ~]# swapoff /tmp/newdisk
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 988 125 618 6 244 694
Swap: 2047 0 2047
通過查詢發現,卸載後swap又回到以前的大小了。

然後我們再刪除/tmp/newdisk即可。

磁盤格式化,磁盤掛載,手動添加swap空間