磁碟管理(裝置的檢視、掛載與解除安裝、磁碟分割槽、swap分割槽的建立與刪除、磁碟配額)
阿新 • • 發佈:2018-11-08
磁碟管理
概述:
分割槽:磁碟上的分割槽規劃
硬碟:是一種儲存裝置,可劃分分割槽(可見的)
硬碟與系統的關係: 系統管理硬碟 硬碟儲存系統資訊
1.本地儲存裝置的檢視
fdisk 是用於管理磁碟分割槽的實用程式 fdisk -l #檢視系統真實存在的裝置 cat /proc/partitions #檢視系統可識別到的裝置 blkid #檢視系統可使用的裝置 df #檢視系統正在使用(掛載)的裝置 df -h #檢視到的資料更為準確 (以2^n計算 1M=1024k) df -H #檢視到的資料更為準確 (以10^n計算 1M=1000k)
實驗1:(在虛擬機器中)
##檢視系統所有的裝置資訊
[[email protected] ~]# fdisk -l (在虛擬機器中)
[[email protected] ~]# fdisk -l(在真機中)
##檢視系統可識別的裝置資訊
[[email protected] ~]# cat /proc/partitions
##檢視系統可使用的裝置資訊
[[email protected] ~]# blkid
##檢視系統正在使用(掛載)的裝置資訊 [[email protected] ~]# df
2.裝置的掛載和解除安裝
(1).裝置名稱
/dev/sda ##第一塊串列埠硬碟;dev=裝置 s=sata d=disk a=第一塊 (b表示第二塊 依次類推) /dev/vda ##第一塊虛擬硬碟;dev=裝置 v=virtal 虛擬裝置 d=disk a=第一塊 /dev/hd0 ##並口磁碟 /dev/hd1 --IDE #老式硬碟(並口硬碟) /dev/mapper/* #虛擬裝置 /dev/cdrom #光碟機(不一定存在) /dev/sr0 #光碟機(一定存在) 注:cdrom為sro的快捷方式,cdrom可以不存在
(2).裝置的掛載與解除安裝
mount 裝置名 掛載點 ##掛載
mount -o 許可權 裝置名 掛載點
mount -o remount,許可權 裝置名/掛載點
umount 裝置名/掛載點 ##解除安裝
例如:
mount /dev/sdb1 /mnt ##將/dev/sdb1裝置掛載到/mnt
mount -o ro /dev/sdb1 /mnt ##只讀掛載
mount -o remount,rw /mnt ##重新讀寫掛載
mount -o remount,rw /dev/sdb1
實驗2:(在真機中)
先插入u盤裝置
##檢視掛載裝置資訊
[[email protected] ~]# df
##檢視都u盤裝置是讀寫掛載
[[email protected] ~]# mount
##將/dev/sdb裝置(u盤)掛載到/mnt上
[[email protected] ~]# mount /dev/sdb1 /mnt
[[email protected] ~]# df
[[email protected] ~]# cd /mnt
##可以檢視到u盤裝置裡的檔案,因為u盤掛載在/mnt上的
[[email protected] mnt]# ls
##可以新建檔案,因為預設掛載是讀寫掛載
[[email protected] mnt]# touch westos
[[email protected] mnt]# ls
@可將電腦上的檔案拷貝到u盤中
[[email protected] mnt]# cp /home/kiosk/Desktop/westosfile .
[[email protected] mnt]# ls
##解除安裝;umount後邊可以跟掛載點或者掛載裝置
[[email protected] ~]# umount /mnt
[[email protected] ~]# df
[[email protected] ~]# umount /dev/sdb1
[[email protected] ~]# df
1. U盤只讀,無法拷貝檔案,該如何解決?
@1模擬實驗環境:
[r[email protected] ~]# mount -o ro /dev/sdb1 /mnt
[[email protected] ~]# mount
[[email protected] ~]# cd /mnt/
[[email protected] mnt]# ls
[[email protected] mnt]# touch hello
@2解決方案
方法1:
##1.解除安裝
[[email protected] ~]# umount /mnt
[[email protected] ~]# df
##2.讀寫掛載
[[email protected] ~]# mount -o rw /dev/sdb1 /mnt
方法2:
##直接重新讀寫掛載
[[email protected] ~]# mount -o remount,rw /dev/sdb1
測試:
[[email protected] ~]# mount
[[email protected] ~]# cd /mnt
##雖然還是無法識別中文,但是可以新建檔案,說明讀寫掛載成功
[[email protected] mnt]# ls
[[email protected] mnt]# touch hello
[[email protected] mnt]# ls
[[email protected] mnt]# cd /home/kiosk/Desktop
[[email protected] Desktop]# ls
##不能識別中文的檔案和圖片
[[email protected] Desktop]# cp 圖片 /mnt
cp: cannot create regular file ‘/mnt/圖片’: Invalid argument
##@2將名字中含有中文的檔案直接打包拷貝到u裝置中
[[email protected] Desktop]# tar cf /mnt/tupian.tar 圖片
[[email protected] Desktop]# ls /mnt
[[email protected] Desktop]# cd /mnt
[[email protected] mnt]# rm -rf tupian.tar
2.裝置正忙,無法解除安裝,該怎麼解決?
方法1:
fuser -kvm /mnt ##直接結束有關掛載在/mnt上的裝置的所有程序;v表示詳細資訊,m表示掃描,k表示結束正在執行著的程式
umount /mnt ##解除安裝
方法2:
lsof /mnt ##檢視掛載在/mnt上的裝置的程序資訊
kill -9 程序號 ##結束程序
umount /mnt ##解除安裝
@1.模擬環境
[[email protected] ~]# df
[[email protected] ~]# cd /mnt
##不要退出
[[email protected] mnt]#
#再開啟一個shell
[[email protected] Desktop]$ su -
[[email protected] ~]# umount /dev/sdb1
@2.解決方案
方法1:
##lsof後邊可以跟掛載點/掛載裝置
[[email protected] ~]# lsof /mnt
##檢視關於/dev/sdb1裝置的所有程序資訊
[[email protected] ~]# lsof /dev/sdb1
##結束程序
[[email protected] ~]# kill -9 18461
[[email protected] ~]# umount /mnt
[[email protected] ~]# df
方法2:
[[email protected] ~]# umount /dev/sdb1
##檢視/dev/sdb1裝置正在執行的程式
[[email protected] ~]# fuser -vm /dev/sdb1
##結束有關/dev/sdb1裝置的所有程式
[[email protected] ~]# fuser -kvm /dev/sdb1
[[email protected] ~]# fuser -vm /dev/sdb1
[[email protected] ~]# umount /dev/sdb1
[[email protected] ~]# df
3.磁碟分割槽
主分割槽: p (1-3)
可擴充套件分割槽(4-容器): L 邏輯分割槽(容器不能直接使用!!!)
硬碟0磁軌1扇區的512個位元組中記錄的資訊如下:
512 = 446 + 64 + 2
^ ^ ^
mbr(主引導記錄) mpt(主分割槽標) 55aa(硬碟的有效標識)
分割槽的兩種方式:
mbr #分為主分割槽p(primary第四個分割槽)和擴充套件分割槽e(expended容器;邏輯分割槽(容器中的內容),最多隻能劃分4個主分割槽。為了容納更多的東西,所以將第4個分割槽化為擴充套件分割槽(容器),可將容納不下的東西放到這個擴充套件分割槽中在linux中最多放16個,且每個不超過2t
gpt #不分主分割槽和擴充套件分割槽,可劃分128個分割槽
硬碟分割槽標 64
1個分割槽佔用16個位元組
1塊硬碟最多可以劃分4個主分割槽
實驗:
@1.如何劃分分割槽
##只能用/dev/vdb裝置劃分分割槽
[[email protected] ~]# fdisk -l
##進入分割槽介面,建立分割槽
[[email protected] ~]# fdisk /dev/vdb
[[email protected] ~]# fdisk -l
[[email protected] ~]# cat /proc/partitions
@@如何掛載裝置分割槽
掛載前需要先格式化!!!
##1.格式化
[[email protected] ~]# mkfs.xfs /dev/vdb1
[[email protected] ~]# blkid
[[email protected] ~]# df
##2.掛載
[[email protected] ~]# mount /dev/vdb1 /mnt
[[email protected] ~]# df
##最多新建3主分割槽,第四個為可擴充套件分割槽(不可用)
[[email protected] ~]# fdisk /dev/vdb
#檢視系統中所有的裝置
[[email protected] ~]# fdisk -l
#檢視系統可識別到的裝置
[[email protected] ~]# cat /proc/partitions
##同步分割槽表
[[email protected] ~]# partprobe
[[email protected] ~]# cat /proc/partitions
##格式化
[[email protected] ~]# mkfs.xfs /dev/vdb5
排錯:
[[email protected] ~]# mkfs.xfs /dev/vdb5
解決方案:
先刪除/dev/vdb5分割槽,然後重新建立一個稍大的/dev/vdb5分割槽
一般情況:一個目錄上只能掛載一個裝置
[[email protected] ~]# df
##錯誤操作:直接在掛載點上再掛載一個/dev/vdb5裝置分割槽
##雖然可以掛載成功,但是解除安裝時會出現問題
[[email protected] ~]# mount /dev/vdb5 /mnt
[[email protected] ~]# df
[[email protected] ~]# umount /dev/vdb1
##解決方案:必須先解除安裝後掛載的才能解除安裝初始掛載的裝置
[[email protected] ~]# umount /dev/vdb5
[[email protected] ~]# umount /dev/vdb1
[[email protected] ~]# df
正確操作:先解除安裝/mnt,再將/dev/vdb5裝置分割槽掛載到/mnt
4.掛載分割槽裝置的兩種方式
@1.臨時性掛載
[[email protected] ~]# df
[[email protected] ~]# mount /dev/vdb5 /mnt
[[email protected] ~]# df
##解除安裝
[[email protected] ~]# umount /mnt
@2.永久性掛載
## /etc/fstab為開機自動掛載策略檔案
[[email protected] ~]# vim /etc/fstab
###############
/dev/vdb5 /mnt xfs defaults 0 0
裝置 掛載點 檔案系統型別 掛載引數 不備份 不檢測
[[email protected] ~]# df
##讓系統重新讀取掛載資訊;(檢測引數是否書寫正確,不報錯即為正確)
[[email protected] ~]# mount -a
[[email protected] ~]# df
5.Swap分割槽
@1.建立swap分割槽
##檢視swap分割槽
[[email protected] ~]# swapon -s
##新建分割槽
[[email protected] ~]# fdisk /dev/vdb
##同步分割槽表
[[email protected] ~]# partprobe
[[email protected] ~]# cat /proc/partitions
@2新增swap分割槽
(1).臨時性新增swap分割槽
##格式化為swap
[[email protected] ~]# mkswap /dev/vdb6
[[email protected] ~]# swapon -s
##將/dev/vdb6分割槽新增到swap分割槽中
[[email protected] ~]# swapon -a /dev/vdb6
[[email protected] ~]# swapon -s
##關閉裝置分割槽
[[email protected] ~]# swapoff /dev/vdb6
[[email protected] ~]# swapon -s
2. 永久性新增swap分割槽
[[email protected] ~]# vim /etc/fstab
###############
/dev/vdb6 swap swap defaults 0 0
[[email protected] ~]# swapon -s
[[email protected] ~]# swapon -a
[[email protected] ~]# swapon -s
@3刪除swap分割槽
##停止裝置
[[email protected] ~]# swapoff /dev/vdb6
[[email protected] ~]# vim /etc/fstab
###############
刪除:/dev/vdb6 swap swap defaults 0 0
##刪除/dev/vdb6分割槽
[[email protected] ~]# fdisk /dev/vdb
##同步分割槽表
[[email protected] ~]# partprobe
[[email protected] ~]# cat /proc/partitions
6.磁碟配額
磁碟配額:針對於裝置
dd if=/dev/zero of=/mnt/studentfile bs=1M count=21
具體引數的含義:
dd #擷取
if #input file 輸入檔案
of #out of file 輸出檔案
/dev/zero #無限零位元組(裝置)
bs #塊的大小(block size)
count #塊的個數
##檢視dd命令幫助
[[email protected] ~]# man dd
@未設定磁碟配額時,擷取多大輸出檔案便有多大,直到將超出記憶體,才會無法擷取;這樣很不合理。
[[email protected] ~]# su - student
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=50
[[email protected] ~]$ du -sh /pub/file
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=51
[[email protected] ~]$ du -sh /pub/file
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=70
[[email protected] ~]$ du -sh /pub/file
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=100
[[email protected] ~]$ du -sh /pub/file
[[email protected] ~]$ rm -rf /pub/file
[[email protected] ~]$ exit
logout
@設定磁碟配額
[[email protected] ~]# cat /proc/partitions
##1.格式化
[[email protected] ~]# mkfs.xfs /dev/vdb5
[[email protected] ~]# df
[[email protected] ~]# umount /mnt
[[email protected] ~]# mkfs.xfs /dev/vdb5
[[email protected] ~]# mkfs.xfs /dev/vdb5 -f
[[email protected] ~]# mkdir /pub
##2.掛載
[[email protected] ~]# mount /dev/vdb5 /pub
[[email protected] ~]# df -H
##3.更改許可權;必須是先掛載再更改許可權
[[email protected] ~]# chmod 777 /pub
[[email protected] ~]# ll -d /pub
[[email protected] ~]# mount
##4.以usrquota方式掛載
##必須先解除安裝,再掛載。不能直接remount
[[email protected] ~]# umount /pub
[[email protected] ~]# mount -o usrquota /dev/vdb5
##檢視是否啟用配額引數
[[email protected] ~]# mount
[[email protected] ~]# quotaon /dev/vdb5
##5.設定配額
[[email protected] ~]# cd /pub
[[email protected] pub]# edquota -u student
#################
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb5 0 0 20480 1 0 0
測試:
[[email protected] ~]# su - student
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=10
[[email protected] ~]$ du -sh /pub/file
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=20
[[email protected] ~]$ du -sh /pub/file
[[email protected] ~]$ dd if=/dev/zero of=/pub/file bs=1M count=21
[[email protected] ~]$ du -sh /pub/file