天天看點

Linux—linux系統中的磁盤管理

一. 本地儲存設備的識别

#1.本地儲存設備的時别
插上U盤看裝置
fdisk -l			##真實存在的裝置 (不一定是系統識别的)
cat /proc/partition		##系統時别的裝置
blkid				##系統可使用的裝置
df				##系統正在挂載的裝置

           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理

二.裝置的挂載和解除安裝

1.裝置名稱
/dev/xdx	##/dev/hd0 /dev/hd1 /dev/sda /dev/sdb  /dev/sda1 /dev/sda2 /dev/sdb1
/dev/sr0	##光驅
/dev/mapper/*	##虛拟裝置(用軟體模拟出的裝置)
           
2.裝置的挂載
mount  裝置	挂載點
mount /dev/sdb1	 /mnt			##挂載sdb1到mnt
umount /mnt| /dev/sdb1			##解除安裝
mount -o ro /dev/sdb1	 /mnt		##隻讀挂載
mount 					##檢視挂載資訊
mount -o remount,rw /dev/sdb1  /mnt	##重新讀寫挂載
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理

三. 解決裝置正忙的問題

3.解決裝置正忙情況
[[email protected] ~]# umount /mnt/
umount: /mnt: target is busy.			##有程式在使用此裝置
        (In some cases useful info about processes that 
         the device is found by lsof(8) or fuser(1))
解決方法1
fuser -vm /mnt	#檢視/mnt誰在用
fuser -kvm /mnt	#檢視并結束(開一個shell進入mnt,在另一個shell裡結束)
umount /mnt

解決方法2
lsof /mnt
[[email protected] ~]# lsof /mnt/
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    27446 root  cwd    DIR   8,17     4096    2 /mnt

kill -9 27446 #kill -9 :手動殺死一個程序
umount /mnt
           

四. 磁盤分區

##3.磁盤分區####
1.硬碟0磁道1扇區的512個位元組中記錄的資訊如下

512=446     +              64      +        2
     ^			    ^		    ^	
   mbr(主引導記錄)	  mpt(主分區表)	   55aa(硬碟的有效性标實)

##3.分區步驟###
1.fdisk -l
2.fdisk /dev/vdb
m
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  ##修改分區id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit	##儲存分區标資訊到硬碟
   x   extra functionality (experts only)

###建立主分區

Command (m for help): n		##建立
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p		##主分區
Partition number (1-4, default 1): 	##id用預設
First sector (2048-20971519, default 2048):     ##分區起始
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M ##分區大小
Partition 1 of type Linux and of size 500 MiB is set

Command (m for help): p	##顯示資訊

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: dos
Disk identifier: 0xb2cb6457

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     1026047      512000   83  Linux

Command (m for help): wq
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
##當系統已經有三個主分區時
Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e		##3個主分區出現要先劃分擴充分區
Selected partition 4
First sector (3074048-20971519, default 3074048): 
Using default value 3074048
Last sector, +sectors or +size{K,M,G} (3074048-20971519, default 20971519): 
Using default value 20971519
Partition 4 of type Extended and of size 8.5 GiB is set

Command (m for help): p

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: dos
Disk identifier: 0xb2cb6457

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     1026047      512000   83  Linux
/dev/vdb2         1026048     2050047      512000   83  Linux
/dev/vdb3         2050048     3074047      512000   83  Linux
/dev/vdb4         3074048    20971519     8948736    5  Extended	##把所有空間都給E
           

五. 給裝置安裝檔案系統

mkfs.xfs	 /dev/vdb1	
mount /dev/vdb1	 /mnt	

man 5 fstab
vim /etc/fstab    ##設定永久挂載
裝置		挂載點	檔案系統	        挂載參數	     是否備份	    是否檢測
/dev/vdb1	/mnt	  xfs		defaults	0		0

mount -a
#fstab比rc.local快,在硬體檢測完,核心啟動時就會挂載
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理

六. swap分區管理

1)swap分區建立
劃分分區并設定分區标簽為82
mkswap	/dev/vdb6
swapon	-a /dev/vdb6	
swapon -s
vim /etc/fstab     ##設定永久挂載
/dev/vdb6	swap	swap	defaults	0 0
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
2)swap分區删除
vim /etc/fstab    ##删除裡面配置資訊

swapoff	 /dev/vdb6
swapon -s
           
Linux—linux系統中的磁盤管理
###6.配額###
再分一個vdb7為100M,格式化xfs,建立/public,權限改為777
挂載vdb7到/public,權限變化(要先挂裝置,再改權限,權限是記錄在裝置裡的)

配額是針對與分區的。因為隻有在vdb7中才會受到限制

mount -o usrquota /dev/vdb7	/public
chmod 777 /public
切換到student使用者,dd if=/dev/zero of=/public/studentfile bs=1M count=20
								      30
如果多人用這個目錄,沒人限制他

edquota -u studnet
Disk quotas for user student (uid 1000):             (硬限,最多寫多少)
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/vdb7                         0       (軟限,超過警告)   0          0          0        0        0
			    使用者在裝置上已經存在的資料大小
					(事實)
inodes(檔案個數)
##改的時候改硬限

vim /etc/fstab
/dev/vdb7	/public		xfs	defaults,usrquota	0	0

測試
[[email protected] ~]$ dd if=/dev/zero of=/public/studentfile bs=1M count=200
           

七. 磁盤加密

###7.磁盤加密###
1.磁盤加密
##若是建立的磁盤 則在鎖之前放入檔案系統  mkfs.xfs	 /dev/vdb1
luks加密
##若是已有的磁盤并且在挂載中 那麼
umount /dev/vdb8      ##先解除安裝挂載的磁盤
cryptsetup luksFormat /dev/vdb8   ##加密 /dev/vdb8
YES       ##BUG  YES   必須大寫


cryptsetup open /dev/vdb8 westos  ##打開并賦予新名字 westos 解密後才能挂載
ll /dev/mapper/westos    ##檢視
mkfs.xfs  /dev/mapper/westos   ##格式化
mount /dev/mapper/westos  /mnt/  ##挂載
touch /mnt/file{1..10}
umount /mnt/    ##解除安裝
cryptsetup close westos ##必須關閉,不然依然可以挂載  
##關閉之後/dev/mapper/westos檔案消失
關閉後挂載原始裝置/dev/vdb8也不行,是luks加密的
##下次挂載得重新打開解密
cryptsetup open /dev/vdb8 westos
mount /dev/mapper/westos  /mnt/
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
2.加密磁盤的永久挂載
若之前的加密磁盤在挂載中  先解除安裝   umount /mnt/
然後  cryptsetup close westos    ##關閉
vim /etc/crypttab  ##  生成虛拟裝置
解密後的裝置管理檔案(随便起)     裝置        加密字元的存放檔案
   redhat                     /dev/vdb1     /root/lukspsfile
vim /root/lukspsfile     ##添加設定的磁盤密碼
926493484wzh
chmod 600 /root/lukspsfile     ##為了root使用者權限最大  因為是加密檔案,是以隻能讓root使用者權限最大
crypsetup luksAddKey /dev/vdb1 /root/lukspsfile ##使得虛拟裝置和密碼産生關聯
vim /etc/fstab      ##永久挂載
/dev/mapper/redhat  /mnt   xfs   defaults  0  0 ##添加開機自動挂載
reboot  ##重新開機
df   ##檢視是否挂載成功
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
3.删除自動挂載和加密
1.删除開機自動挂載
vim /etc/fstab
删除  /dev/mapper/redhat  /mnt   xfs   defaults  0  0
vim /etc/crypttab
删除   redhat            /dev/vdb1     /root/lukspsfile
vim /root/lukspsfile
删除  密碼
或者 rm -rf /root/lukspsfile
umount /dev/vdb1
df
           
Linux—linux系統中的磁盤管理
2.删除加密
cryptsetup close redhat  ##關閉虛拟裝置 redhat
mkfs.xfs  /dev/vdb1 -f   ##強行格式化裝置  即删除加密 -f 強制 不加 -f 則無法格式化 即無法删除加密
删除加密後即可随意挂載裝置  /dev/vdb1
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
4.磁盤陣列
添加硬碟并準備3塊分區 /dev/vdd{1..3}  将其檔案類型改為: fd
再打開一個Terminal
watch -n 1 cat /proc/mdstat     ##觀察
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdd{1..3}
##mdadm指令建立磁盤陣列  
-C  ##建立  
-a  ##檔案不存在則自動建立檔案
-l  ##raid級别  
-n  ##工作裝置個數 
-x  ##閑置裝置個數
mkfs.xfs /dev/md0              ##格式化
mount /dev/md0 /mnt/           ##挂載
mdadm -D /dev/md0              ##檢視裝置資訊
mdadm -f /dev/md0 /dev/vdd1    ##弄壞/dev/vdd1
mdadm -r /dev/md0 /dev/vdd1    ##删除/dev/vdd1
mdadm -a /dev/md0 /dev/vdd1    ##恢複裝置/dev/vdd1

##先解除安裝裝置 umount /mnt/  然後
mdadm -S /dev/md0              ##删除陣列
###進行上述操作并觀察另一個Terminal 裝置變化
           
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理
Linux—linux系統中的磁盤管理