1. 程式人生 > >磁碟管理(裝置的檢視、掛載與解除安裝、磁碟分割槽、swap分割槽的建立與刪除、磁碟配額)

磁碟管理(裝置的檢視、掛載與解除安裝、磁碟分割槽、swap分割槽的建立與刪除、磁碟配額)

磁碟管理

概述:

分割槽:磁碟上的分割槽規劃
硬碟:是一種儲存裝置,可劃分分割槽(可見的)
硬碟與系統的關係: 系統管理硬碟  硬碟儲存系統資訊

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

在這裡插入圖片描述