磁盤分區,磁盤配額,LUKS加密

磁盤

1.磁盤的組成:盤片,機械手臂,磁頭,主軸馬達。盤片分爲柱面(Cylinder)和扇區(Sector),每個扇區大小爲512bytes。
2.磁盤的第一個分區記錄內容:
(1)主引導分區(Master Boot Record,MBT):安裝引導加載程序,446bytes。
(2)分區表:記錄整塊硬盤分區的狀態,46bytes。

分區

1.mbr分區表使用fdisk分區
fdisk使用m作爲提示指令,fdisk有時會使用柱面作爲分區的最小單位
partprobe [-s] ##更新linux核心的分區信息

2.按生產標準定製分區
(1)分區的實質(原理):給磁盤按照柱面爲單位劃分爲不同的塊(給一個分區指定不同的柱面數來分成不同的分區數)。柱面爲分區的最小單位。
(2)分區之後需要給分區格式化,分區格式化的原理是:把分區變成可以存儲數據的格式。
(3)磁盤分區有主分區(可直接使用)、擴展分區(不可直接使用,劃分爲邏輯分區可使用)、邏輯分區之分。一塊磁盤最多有四個主分區(原因:主分區表只有64bytes,每個主、擴展分區各要佔用16bytes),其中一個主分區的位置可以用擴展分區替換,一塊硬盤只能有一個擴展分區,這個擴展分區可以有多個邏輯分區。
3P+E
2P+E
P+E
4P 不能增加分區
(4)磁盤分區的設備名
通過設備名來訪問設備,設備名存放在“/dev”目錄中
設備名稱如下:
系統的第一塊IDE接口的硬盤稱爲/dev/hda(系統的第一塊SCSI接口硬盤的第1個分區爲/dev/sda1;)
二 /dev/hdb;
三 /dev/hdc;
系統的第一塊IDE接口硬盤的第1個分區爲/dev/hda1;
系統的第一塊IDE接口硬盤的第2個分區爲/dev/hda2。
注意:
①分區數字編號1~4留給主分區和擴展分區使用,邏輯分區編號只能從5開始;
②IDE硬盤設備名均以/dev/hd開頭,不同硬盤編號依次爲/dev/hda、/dev/hdb、/dev/hdc。
③SCSI、SAS、SATA、USB硬盤設備名均以/dev/sd開頭,不同硬盤編號依次爲/dev/sda、/dev/sdb、/dev/sdc。
④SAS、SATA爲當前2010-2012互聯網生產環境主流硬盤接口,SSD是主流硬盤接口,逐漸被應用。
性能:SSD(電子設備)>SAS(機械硬盤)>SATA(同樣的價錢容量從大到小,則順序相反)
線上服務器中,SAS是主流。
⑤Linux中常用的外部設備文件名

軟盤          /dev/fdN(N=0,1,2...)
光驅(IDE)   /dev/cdrom(→/dev/hdX)
光驅(SCSI)  /dev/scdN(N=0,1,2...)
硬盤(IDE)   /dev/hdX(X=a,b,c...)
硬盤(SCSI)  /dev/sdX(X=a,b,c...)
U盤          /dev/sdX(X=a,b,c...)

3.Linux系統對分區的要求
(1)至少有/和swap(交換分區)分區(必須有一個根分區)
(2)交換分區的作用:虛擬內存(內存不夠用了,通過虛擬內存進行緩存)
大小參考值爲1.5倍的物理內存容量。內存大於8GB,swap大小可以等於物理內存;內存爲16GB、32GB或更高,swap可在8~16GB。
數據庫使用swap會變慢。如果不分swap,內存被用完會宕機。
若發現swap被用了很多,內存有剩餘,則說明程序有漏洞(內存泄漏)。處理方式爲:找程序。
(3)建議設置獨立的/boot分區
Linux引導分區,存放系統引導文件(如Linux內核等),所有文件大小一般只有幾十兆歐。故該分區一般設置爲100~200M。

設備的查看

1.發現系統中的設備
(1)fdisk -l
這裏寫圖片描述

(2)cat /proc/partitions
這裏寫圖片描述

2.系統發現的,但是沒有投入使用 隨時可以使用的
blkid ##查看設備的id信息
這裏寫圖片描述

3.正在使用的設備

df   -h                    ##1g=2^n (更精確)
df   -H                    ##1g=10^n

這裏寫圖片描述

設備名稱的讀取

1./dev/xd*

x=s  /dev/sd*          ##sate硬盤,或者iscsi網絡存儲
x=v  /dev/vd*          ##虛擬硬盤,一般出現在虛擬機裏
x=h  /dev/hd*          ##ide硬盤 ,一般出現在老式電腦裏
*=a~...                ##/dev/vda, 系統中的第一塊虛擬硬盤
/dev/sda1              ##系統中的第一塊sate硬盤的第一個分區

2./dev/cdrom,/dev/sr[0-…] ##系統中的光驅

3./dev/mapper/* ##系統中的虛擬設備

設備的使用

設備必須使用目錄來對設備中的內容進行讀取
所以設備在使用時需做掛載動作

1.blkid ##查看可使用的設備

[root@localhost ~]# blkid
/dev/sda1: UUID="40486AB4486AA87C" TYPE="ntfs"
.   .   .   .   .   .
/dev/sdb1: LABEL="HP v285w" UUID="9B03-2CED" TYPE="vfat"             ##插入的u盤

這裏寫圖片描述

[root@localhost ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda5      266049616 23050072 242999544   9% /
.  . .  .  .  .
/dev/sdb1       31020992  2913408  28107584  10% /run/media/kiosk/HP v285w       ##u盤掛載位置

這裏寫圖片描述

2.mount 設備 掛載點 ##掛載設備(掛載在一個目錄後 可查看設備裏的內容 不能查看原來目錄裏的東西)

mount  -o ro     設備     目錄  ##-o,指定動作,ro表示read only
mount  -o ro  /dev/sdb1  /mnt/

這裏寫圖片描述

注意:當卸載設備時出現下列情況

umount: /mnt: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

(1)進程發現的方式

[root@localhost ~]# fuser -vm /dev/sdb1
                     USER        PID ACCESS COMMAND
/dev/sdb1:           root     kernel mount /mnt
                     root      20071 ..c.. bash
                     root      20720 F.c.. vim

或者

[root@localhost ~]# lsof /dev/sdb1
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    20071 root  cwd    DIR   8,17    16384    1 /mnt
vim     20720 root  cwd    DIR   8,17    16384    1 /mnt
vim     20720 root   3u    REG   8,17    12288  3096 /mnt/.file.swo

(2))關閉進程的方法

[root@localhost ~]# fuser -kvm /dev/sdb1
                     USER        PID ACCESS COMMAND
/dev/sdb1:           root     kernel mount /mnt
                     root      15647 ..c.. bash
                     root      20021 F.c.. vim
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda5      266049616 23050820 242998796   9% /
devtmpfs         1868044        0   1868044   0% /dev
tmpfs            1881152      516   1880636   1% /dev/shm
tmpfs            1881152     9016   1872136   1% /run
tmpfs            1881152        0   1881152   0% /sys/fs/cgroup
/dev/sda2         505580   149488    356092  30% /boot
/dev/loop0       3947824  3947824         0 100% /var/www/html/rh7.2
/dev/loop1       3947824  3947824         0 100% /rh7.2
tmpfs             376232       20    376212   1% /run/user/1000

或者

kill -9 pid
[root@localhost ~]# fuser -vm /dev/sdb1
                     USER        PID ACCESS COMMAND
/dev/sdb1:           root     kernel mount /mnt
                     root      20071 ..c.. bash
[root@localhost ~]# kill -9 2007
-bash: kill: (2007) - No such process
[root@localhost ~]# kill -9 20071
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df

分區的劃分

分區小結:
mbr分區,最大分區爲2TB
主分區:由分區表記錄的分區
擴展分區:解決分區不足,分出邏輯分區
邏輯分區:在擴展分區中的分區,由擴展分區記錄
mbr + 55aa (2個字節,硬盤有效性標示,類似於目錄)+mpt (主分區表64字節)=512bytes
一個主分區佔用主分區表16個字節記錄分區信息

1.fdisk -l 查看分區
這裏寫圖片描述

2.創建分區

fdisk  /dev/vdb
Command (m for help): n       ##創建分區
Partition type:
   p   primary (0 primary, 0 extended, 4 free)  ##主分區
   e   extended                              ##擴展分區

Partition number (1-4, default 1): 1         ##確認主分區id
First sector (2048-20971519, default 2048):  ##分區起始快位置 ,用默認
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M                  ##分區結束快位置,用+
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): wq      ##保存分區操作並退出

這裏寫圖片描述

分區之後
cat /proc/partitions ##查看設備是否被識別
這裏寫圖片描述

mkfs.xfs /dev/vab1 ##格式化設備,在設備上添加xfs文件系統
這裏寫圖片描述

blkid ##查看可用設備,可以看到被格式化好的設備
這裏寫圖片描述

mount /dev/vab1 /mnt/ ##掛載設備,使設備投入使用
這裏寫圖片描述
partprobe ##同步分區表

文件系統:
ext 分佈式文文件系統,穩定
ext2-3 可支持32TB的分區
ext4 可支持1EB的分區
vfat 可支持4TB,鏈式文件系統,穩定性差
ntfs 可支持32TB的分區,鏈式文件系統,穩定性差
xfs 可支持18EB的分區,吞吐速度7GB/S

設備永久掛載

vim /etc/fstab
設備 掛載點 文件系統類型 掛載參數 是否備份 是否檢測磁盤是否完整,數據是否有問題

/dev/vdb1  /mnt/       xfs        defaults    0                    0

這裏寫圖片描述
mount -a ##讓fstab中未生效的策略生效
這裏寫圖片描述

刪除分區

注意:正在使用的設備不能刪除

vim /etc/fstab       ##刪掉之前的掛載
mount  -a            ##讓fstab中未生效的策略生效
umount  /mnt/        ##取消掛載
df                   ##查看掛在點

這裏寫圖片描述
然後fdisk /dev/vdb
Command (m for heip):d ##刪除分區/dev/vdb1
這裏寫圖片描述

swap分區的管理

1.swap 交換分區,系統自己使用,不需要掛載
2.swap分區的建立
先建立分區
這裏寫圖片描述

然後將分區的id改爲swap類型
Command (m for help)t ##修改分區id
Hex code (type l to list all codes):l ##列出所有的id類型代碼
這裏寫圖片描述

Hex code (type l to list all codes):82 ##把/dev/vdb1的分區類型改爲swap,swap類型代碼爲82
這裏寫圖片描述

vim /etc/fstab

 /dev/vdb1       swap         swap    defaults        0 0

這裏寫圖片描述

mkswap        /dev/vdb1  ##格式化/dev/vdb1爲swap文件系統格式
swapon  -a   /dev/vdb1   ##激活swap設備,將新建的swap投入使用
swapon  -s     ##同cat /proc/swaps,列出目前使用swap的設備有哪些

這裏寫圖片描述

swapoff /dev/vdb1 ##關閉系統使用/dev/vdb1
這裏寫圖片描述

3.當磁盤全部被用完不能創建新分區時,可以使用文件來代替分區
dd if=/dev/zero of=/swapfile bs=1M count=1000
這裏寫圖片描述

此文件創建後的步驟和設備的步驟一致
這裏寫圖片描述

這裏寫圖片描述

注意:
新建分區時,我們會遇到Command (m for help),輸入m即可查看參數的使用方法,如下所示:

Command (m for help): m         ##輸入m 查看參數用法
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition        ##刪除分區
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition        ##新建分區
   o   create a new empty DOS partition table
   p   print the partition table  ##區分分區表信息
   q   quit without saving changes          
   ##退出,但是不會保存新建的分區操作
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit   ##將當前操作寫入硬盤分區
   x   extra functionality (experts only)

刪除swap分區

vim /etc/fstab ##刪除swap的配置
這裏寫圖片描述

swapoff /dev/vdb1 ##停止/dev/vdb1設備的使用
swapoff /swapfile ##停止/swapfile設備的使用
這裏寫圖片描述

rm -rf /swapfile ##刪除swap分區
這裏寫圖片描述

fdisk /dev/vdb ##fdisk命令刪除分區
這裏寫圖片描述

注意:

rm -rf /dev/vdb1是刪除/dev/vdb1設備文件,恢復方法爲:
mknod /dev/vdb1  b  253   17

這裏寫圖片描述

mknod          ##用於新建字符設備文件和塊設備文件
-z             ##設置安全的上下文
-m             ##設置權限模式
-help          ##顯示幫助的信息
--version      ##顯示版本的信息
b              ##創建塊(緩衝)文件
c,u           ## 創建字符(非緩衝)文件
p              ##創建一個先進先出,先入先出

磁盤配額

爲磁盤使用用戶分配額度
分區配額是針對設備的
1.激活設備參數

mount -o usrquota  /dev/vdb1  /westos/
chmod 777 /westos/
edquota -u student /dev/vdb1

這裏寫圖片描述

這裏寫圖片描述

Disk quotas for user student(uid 1000):

Filesystem      blocks    soft   hard    inodes    soft     hard
/dev/vdb1     204800      0     204800     1         0       0
           存在文件的大小  軟額度 最大額度  文件個數    軟額度  最大額度

測試:

su  student
dd  if=/dev/zero  of=/westos/file  bs=1M  count=600

##student用戶的配額限度是200M,然後在/westos下切割一個400M的文件
這裏寫圖片描述

開機自動激活配額
vim /etc/fstab

/dev/vdb1    /westos    xfs   defaults,userqutoa   0    0

分區方式修改 mbr<—->gpt

gpt的優點:解決mbr分區只有2TB,不能滿足使用的缺點。最多支持128個分區

mbr–>gpt:

[root@203server ~]# parted  /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel                          ##修改設備分區方式標籤                                    
New disk label type? gpt                  ##把原有的dos標籤改爲gpt(雙擊Tab可查看所有的設備分區方式標籤)                                      
Warning: The existing disk label on /dev/vdb will be destroyed and all data on this disk will be
lost. Do you want to continue?
Yes/No? yes                                                               
(parted) q                                                                
Information: You may need to update /etc/fstab

這裏寫圖片描述

分區方式檢測:

[root@203server ~]# fdisk -l                                              

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00013f3e

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    20970332    10484142+  83  Linux
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt

Start   End    Size  Type    Name
[root@203server ~]# 

這裏寫圖片描述

luks加密

文件與文件系統的關係:文件存儲在文件系統中,文件系統存儲在磁盤上;文件系統是管理文件的軟件。

luks加密的原理:在文件與文件系統之間加密(相當於在文件與文件系統之間加上鎖),當文件被人經過文件系統取出文件時,取出的文件仍然是加密的無法使用文件。

1.新建分區
2.加密格式化
cryptsetup luksFormat /dev/vdb1 ##對/dev/vdb1進行加密
這裏寫圖片描述

[root@localhost ~]# cryptsetup  luksFormat  /dev/vdb1      

WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:                 ##設置加密的密碼
Verify passphrase:         
[root@localhost ~]# 

3.cryptsetup open /dev/vdb1 westos ##生成加密使用的鎖,westos是隨意命名的
這裏寫圖片描述

[root@localhost ~]# cryptsetup open /dev/vdb1 westos
Enter passphrase for /dev/vdb1:
[root@localhost ~]#

4.mkfs.xfs /dev/mapper/westos ##將生成的鎖格式化爲xfs並投入使用
5.mount /dev/mapper/westos /mnt/ ##掛載設備
這裏寫圖片描述

touch /mnt/westosfile{1..5}
這裏寫圖片描述

6.umount /mnt/ ##卸載/mnt/
cryptsetup close westos ##關閉鎖

7.cryptsetup open /dev/vdb1 westos
mount /dev/mapper/westos /mnt/
這裏寫圖片描述

加密設備開機自動掛載

[root@localhost ~]# vim /etc/fstab 
/dev/mapper/westos   /mnt   xfs   defaults   0   0
[root@localhost ~]# vim /etc/crypttab 
westos   /dev/vdb1    /root/passfile

[root@localhost ~]# vim /root/passfile
2017westos
[root@localhost ~]# chmod 600  /root/passfile

[root@localhost ~]# cryptsetup  luksAddKey  /dev/vdb1  /root/passfile
Enter any passphrase:     ##輸入/etc/passfile編輯的內容,即加密的密碼
[root@localhost ~]# 

這裏寫圖片描述

清除加密

[root@localhost ~]# umount /dev/mapper/westos    ##卸載生成的鎖
umount: /dev/mapper/westos: not mounted

[root@localhost ~]# cryptsetup close westos      ##關閉鎖

[root@localhost ~]# mkfs.xfs  /dev/vdb1  -f             
meta-data=/dev/vdb1              isize=256    agcount=4, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# vim /etc/fstab        ##清除編輯的內容,還原文件
[root@localhost ~]# vim /etc/crypttab     ##清除編輯的內容,還原文件
[root@localhost ~]#rm  -rf   /root/passfile

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章