1. 程式人生 > >三周第五次課(2月9日)

三周第五次課(2月9日)

磁盤 centos5 指定 des oca meta-data 完成 id3 blkid

4.5/4.6 磁盤格式化
4.7/4.8 磁盤掛載
4.9 手動增加swap空間


4.5 磁盤格式化(上)


centos7所支持的文件系統:

# cat /etc/filesystems

xfs centos7默認安裝的系統(/ /boot )

ext4 centos6

ext3 centos5

ext2

nodev proc

nodev devpts

iso9660

vfat

hfs

hfsplus

*



建立1號主分區,容量3G

設備 Boot Start End Blocks Id System

/dev/sdb1 2048 6293503 3145728 83 Linux


格式化

格式化命令#mke2fs #mkfs

#mke2f -t 文件格式 指定文件系統(xf2,ext3,ext4..)

#mke2f -b 塊大小 每塊容量是1024的倍數,默認塊大小是4096。(如果文件如果是空的、無內容,不會占用一個塊的容量。如果文件是)


#mk2fs.ext4===mke2fs -t ext4 兩個命令是一樣的效果,不過mk2fs不支持xfs文件系統格式化。



格式化 /dev/sdb1 xfs格式

# mkfs.xfs -f /dev/sdb1

meta-data=/dev/sdb1 isize=512 agcount=4, agsize=196608 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=786432, 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


想看一個還沒掛載的分區 應該使用#blkid查看

# blkid /dev/sdb1

/dev/sdb1: UUID="f069e6df-95db-4f34-a350-ea089e1af5f1" TYPE="xfs"



4.6 磁盤格式化(下)


指定塊容量為8192

#mke2fs -b 8192 /dev/sdb1 (什麽情況下使用8kb的塊,比如磁盤需要存儲比較大的文件:視頻、音樂、高清圖片,這樣讀寫就會更快。如果小文件,不到4KB的文件,就可以把塊文件適當設置小點,)

一般默認2kb即可


#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

196608 inodes, 1572864 blocks

高亮78643 blocks (5.00%) reserved for the super user

第一個數據塊=0

Maximum filesystem blocks=538968064

96 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


Allocating group tables: 完成

正在寫入inode表: 完成

Writing superblocks and filesystem accounting information: 完成


高亮78643 blocks (5.00%) reserved for the super user

此段意思是:有5%的容量空間是預留給root用戶的,如果覺得比例有點大,可以適當調整。


#mke2fs -m 0.1(此單位是百分比,可以根據情況自定義)

mke2fs 1.42.9 (28-Dec-2013)

文件系統標簽=

OS type: Linux

塊大小=4096 (log=2)

分塊大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

196608 inodes, 786432 blocks

786 blocks (0.10%) reserved for the super user

第一個數據塊=0

Maximum filesystem blocks=805306368

24 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表: 完成

Writing superblocks and filesystem accounting information: 完成


如果無指定文件系統,默認是ext2,一般不會使用ext2,因為太老了。

# blkid /dev/sdb1

/dev/sdb1: UUID="9bd65645-054c-49d9-9eff-468ce06512df" TYPE="ext2"


指定ext4格式(# mke2fs -t ext4 -m 0.1 /dev/sdb1 與#mkfs.ext4 -m 0.1 /dev/sdb2 效果一樣,mke2fs -t ext4 與mkfs.ext4支持的選項是一致的)

# mke2fs -t ext4 -m 0.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

高亮196608 inodes, 786432 blocks

786 blocks (0.10%) reserved for the super user

第一個數據塊=0

Maximum filesystem blocks=805306368

24 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: 完成



高亮196608 inodes, 786432 blocks

此處的關系是1:4,4個塊對應1個inode。

如果修改為2個塊對應一個inode ,如下操作:

#mke2fs -i 8192 -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

高亮393216 inodes, 786432 blocks

39321 blocks (5.00%) reserved for the super user

第一個數據塊=0

Maximum filesystem blocks=805306368

24 block groups

32768 blocks per group, 32768 fragments per group

16384 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: 完成


修改完後,可以看到高亮393216 inodes, 786432 blocks,它們之間的關系是1:2,修改成功。


總結:

mke2fs -b(塊大小) -m(預留空間) -i(修改inode與塊的對比關系)

強調

#mke2fs -t ext4 /dev/sdb1 #mkfs.ext4 /dev/sdb1 兩者效果是一樣的



4.7 磁盤掛載(上)


磁盤 不分區 直接格式化發生的情況,以及具體操作 如下:

先del之前配好的分區

#fdisk /dev/sdb

設備 Boot Start End Blocks Id System

/dev/sdb1 2048 6293503 3145728 83 Linux


命令(輸入 m 獲取幫助):d

已選擇分區 1

分區 1 已刪除

設備 Boot Start End Blocks Id System


命令(輸入 m 獲取幫助):w

The partition table has been altered!


Calling ioctl() to re-read partition table.

正在同步磁盤。


不分區,直接格式化xfs格式

#mkfs.xfs /dev/sdb

# mkfs.xfs /dev/sdb

mkfs.xfs: /dev/sdb appears to contain a partition table (dos).

mkfs.xfs: Use the -f option to force overwrite.


安全提示,有風險,按-f強制執行,

# mkfs.xfs -f /dev/sdb

meta-data=/dev/sdb isize=512 agcount=4, agsize=655360 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=2621440, 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


再#blkid /dev/sdb 查看文件系統,確認是xfs,格式化完成

# blkid /dev/sdb

/dev/sdb: UUID="3a209d80-d5b2-4488-8263-7bc81822a574" TYPE="xfs"


高亮 以上證明,不管有沒有分區,都可以進行格式化操作。


掛載

#mount 設備 掛載點

#mount /dev/sdb /mnt 此處是:把/dev/sdb掛載在/mnt


#df -h 查看掛載點

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda3 28G 1001M 27G 4% /

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 187M 97M 91M 52% /boot

tmpfs 99M 0 99M 0% /run/user/0

高亮 /dev/sdb 10G 33M 10G 1% /mnt


掛載點說法:磁盤的入口,沒有掛載點,沒辦法再此磁盤寫東西。

#mount 可以看到/dev/sdb 的文件系統

/dev/sdb on /mnt type 高亮xfs (rw,relatime,seclabel,attr2,inode64,noquota)


卸載掛載 #umonut /dev/sdb

test

#cd /mnt

#touch 1.txt 2.txt

#mkdir 234

#ls

1.txt 234 2.txt

#umount /dev/sdb

umount: /mnt:目標忙。

(有些情況下通過 lsof(8) 或 fuser(1) 可以

找到有關使用該設備的進程的有用信息)


因為掛載點被cd進去了,所以掛載失敗,解決方法是 進去其他除/mnt(sdb掛載點)即可,操作如下:

[root@centos7 mnt]# cd ~

[root@centos7 ~]# umount /dev/sdb

[root@centos7 ~]# df -h

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda3 28G 1001M 27G 4% /

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 187M 97M 91M 52% /boot

tmpfs 99M 0 99M 0% /run/user/0


如果想進行強制卸載,可以使用#umount -l /mnt (l代表lazy,懶的意思,此處可以當做省去切換目錄操作)



4.8 磁盤掛載(下)


mount 常用選項

#man mount

搜索到 defaults

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

defaults 是默認的,不加任何選項 一般就是defaults


-o option

ro 只讀

rw 可讀可寫

suid 允許分區文件設置suid權限

dev 分區關系

exec 是否可執行,如果noexce,這個分區下面的文件則沒有執行權利。

auto 自動掛載

nouser 普通用戶掛載不到,默認

async 對應sync,sync,文件和內容隨時寫入內存,會使硬盤壓力越來越大。async則相反,默認是async,async是過一會再同步,讓其有緩沖。

remount 重新掛載


*關鍵文件 /vi/etc/fstab

系統啟動,默認掛載了哪些磁盤,哪些分區,都是在此文件下進行配置

# /etc/fstab

# Created by anaconda on Sat Jan 20 01:12:40 2018

#

# 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=ee52814c-cbd8-496e-8c0c-3dfb524bd752 / xfs defaults 0 0

UUID=723e348f-61a5-4fb4-920c-e0a0670da7b2 /boot xfs defaults 0 0

UUID=1d26d6c7-0e21-4c11-b655-73b1cf2863e1 swap swap defaults 0 0

/dev/sdb / xfs defaults 0 0


左到右 五列

設備 設備號 UUID(blkid查看)

掛載點

分區格式

掛載選項

是否備份 1備份 0不備份 早期需要備份,現在一般不備份

優先級 1,2 檢測,0不檢測(一般常用0)是否檢測硬盤有沒有故障 問題。


這種方法也可以同樣掛載UUID


[root@centos7 ~]# blkid

/dev/sda1: UUID="723e348f-61a5-4fb4-920c-e0a0670da7b2" TYPE="xfs"

/dev/sda2: UUID="1d26d6c7-0e21-4c11-b655-73b1cf2863e1" TYPE="swap"

/dev/sda3: UUID="ee52814c-cbd8-496e-8c0c-3dfb524bd752" TYPE="xfs"

/dev/sdb: UUID="3a209d80-d5b2-4488-8263-7bc81822a574" TYPE="xfs"

[root@centos7 ~]# umount /mnt

umount: /mnt:未掛載

[root@centos7 ~]# mount UUID="3a209d80-d5b2-4488-8263-7bc81822a574" /mnt

[root@centos7 ~]# df -h

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda3 28G 1001M 27G 4% /

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 187M 97M 91M 52% /boot

tmpfs 99M 0 99M 0% /run/user/0

/dev/sdb 10G 33M 10G 1% /mnt



4.9 手動增加swap空間


某些服務需要很大的swap空間,所以需要做swap增大

創建模擬磁盤,100M小分區

dd if=/dev/zero of=/tmp/newdisk bs=1M count=100

(dd命令操作磁盤,if指定源from路徑。/dev/zero 導零器。可以產生源源不斷的0。of目標to路徑。bs指定塊的大小。count=100M,count等於b*4=1M x 100s )

[root@centos7 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100

記錄了100+0 的讀入

記錄了100+0 的寫出

104857600字節(105 MB)已復制,0.459588 秒,228 MB/秒

[root@centos7 ~]# du -sh /tmp/newdisk

100M /tmp/newdisk


創建虛擬磁盤完成後,還需要格式化

因為swap是一種特殊文件系統,所以要用到#mkswap命令去格式化

#mkswap -f /tmp/newdisk

#free -m 查看swap 容量

total used free shared buff/cache available

Mem: 984 117 622 6 244 695

Swap: 2047 0 2047


[root@centos7 ~]# swapon /tmp/newdisk

swapon: /tmp/newdisk:不安全的權限 0644,建議使用 0600。


[root@centos7 ~]# free -m

total used free shared buff/cache available

Mem: 984 116 622 6 244 696

Swap: 2147 0 2147


[root@centos7 ~]# chmod 0600 /tmp/newdisk


[root@centos7 ~]# swapoff /tmp/newdisk


[root@centos7 ~]# free -m

total used free shared buff/cache available

Mem: 984 116 622 6 244 696

Swap: 2047 0 2047

[root@centos7 ~]# rm -f /tmp/newdisk


三周第五次課(2月9日)