linux系統分割槽管理
學習目標
- 新增檔案系統空間
- 新增 swap 交換分割槽
- 對系統分割槽加密
1.本地儲存裝置的識別
fdisk -l #真實存在的裝置(不一定系統識別)
cat /proc/partitions #系統識別的裝置
sda #硬碟
sr0 #光碟機
loop #映象
sdb #u盤
eject #光碟機彈出
blkid #系統可以使用的裝置
df #系統正在掛載的裝置
unmount /dev/sdb1 #拔優盤
2.裝置的掛載和解除安裝
1>.裝置名稱
/dev/xdx ##/dev/hd0 /dev/hd1 /dev/sda /dev/sdb /dev/sda1 /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 #重新讀寫掛載
示例:
(1)
[[email protected] ~]# mount 檢視掛載資訊:優盤現在是讀寫掛載
(2) [[email protected] ~]# mount /dev/sdb1 /mnt/ ##把優盤掛載在/mnt 下
(3) [[email protected] ~]# umount /mnt/ ##解除掛載在/mnt下
(4)[[email protected] ~]# mount -o ro /dev/sdb1 /mnt/ ##只讀掛載
(5)
[[email protected] ~]# mount -o remount,rw /dev/sdb1 /mnt/
3>.解決裝置正忙問題
[[email protected] ~]# umount /dev/sdb1 umount: /mnt: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
示例:此時優盤裝置掛載在/mnt上,一個bash正在使用時,想要解除安裝會報錯。根據報錯提示:我們用lsof或fuser解決。
解決方法1:
lsof /mnt
kill -9 6968
[[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 6081 root cwd DIR 8,17 8192 1 /mnt
這裡可以看見程序pid為3395,kill -9 3395,執行後進程被停止
解決方法2:
fuser -vm /mnt ##檢視
[[email protected] ~]# fuser -vm /mnt/
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 5309 ..c.. bash
fuser -kvm /mnt ##檢視並結束
[[email protected] ~]# fuser -kvm /mnt/
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 5663 ..c.. bash
3.磁碟分割槽 MBR 主引導位元組 446位元組 MPT主分割槽表64位元組 硬碟的有效標識 2位元組
在server虛擬機器: 1.把主引導位元組刪除 dd if=/dev/zero of=/dev/vda bs=446 count=1 2.新增映象–>調整映象的順序在Disk1 Disk2之後 3.重啟–>troubleshooting–>rescue a redhat enterprise linux system -->一路回車–> chroot /mnt/sysimage/ -->grub2-install /dev/vda -->exit–>exit–>調整映象順序放在最後–>重啟即可
示例:
[[email protected] ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1 ##MBR被清空
虛擬機器重啟發生錯誤,不能開機。下面講解如何修復MBR: 在virt-manager中,新增映象,並把映象放在開機裝置的第一個。 選擇第三個Troubleshooting
選擇第二個Rescue a Red Hat Enterprise Linux system 一路回車
我們得到一個shell,按照圖片進行操作後退出。 關閉虛擬機器–>把映象的順序放到最後一個—>重啟虛擬機器 虛擬機器啟動成功
常用於分割槽的命令
1.fdisk -l #列出磁碟分割槽資訊
2.fdisk /dev/vdb
進入後:
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)
1>新建主分割槽
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
2>顯示分割槽資訊
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: 0x9e92ec35
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
3>新建拓展分割槽
Command (m for help): n #新建擴充套件分割槽
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): #當有三個主分割槽時需要先劃分擴充套件分割槽
Using default response e
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
4>檢視分割槽資訊
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: 0x9e92ec35
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
不要忘了,最後wq儲存退出
4.給裝置安裝檔案系統
檔案系統比較: ext4 是 Red Hat Enterprise Linux 6 的標準檔案系統。它非常強大可靠 , 具有多項可以提高現代工作量處理效能的功能ext2 是常用於 Linux 中的較舊的檔案系統。它簡單可靠 ,非常適合小型儲存裝置 , 但是效率低於 ext4vfat 支援包括一系列相關檔案系統 ( VFAT/FAT16,FAT32 ), 這些檔案系統針對較舊版本的 MicrosoftWindows 開發 , 在大量的系統和裝置上受支援xfs 在 Red Hat Enterprise Linux 7 的標準檔案系統其具備資料完全、效能穩定、擴充套件性強 ( 8eb-1byte ) 、傳輸速率高 ( 7G/s )
mkfs.xfs /dev/vdb1 #格式化安裝檔案系統
mount /dev/vdb1 /mnt #可以正常掛載
vim /etc/fstab #永久掛載
UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 / xfs defaults 1 1
/dev/vdb1 /mnt xfs defaults 0 0
00 是否(不)備份 是否(不)檢測
mount -a 檢測
直接掛載vdb1發現不可以,現在需要給vdb1安裝檔案系統
重啟後掛載還在
5.swap分割槽的管理 1>.swap分割槽建立 劃分分割槽並設定分割槽標籤為82: 示例: 新建vdb5 發現在這裡檢視不到vdb5,則需要重啟
fdisk /dev/vdb
partpeobe
mkswap /dev/vdb6 #裝系統
swapon -a /dev/vdb6 # 掛載
swaon -s #檢視
Filename Type Size Used Priority
/dev/vdb6 partition 511996 0 -1
vim /etc/fstab
/dev/vdb6 swap swap defaults 0 0
2>.swap 分割槽的刪除
vim /etc/fstab #刪除fstab中掛載內容
swapoff /dev/vdb6 #刪除swap分割槽
swapon -s #檢視
6.使用者配額
fdisk /dev/vdb #新建vdb7分割槽
mkfs.xfs /dev/vdb7 #分割槽,格式化
mkdir /public
mount -o usrquota /dev/vdb7 /public #新增usrquota限額功能
chmod 777 /public/
edquota -u student
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb7 0 0 20480 0 0 0
vim /etc/fstab #自動掛載
/dev/vdb7 /public xfs defaults,usrquota 0 0
blocks使用者已經總共存在資料大小 soft 軟限制:超過警告 hard 硬限:超過報錯 inodes 檔案個數
測試: 切換到student
[[email protected] ~]$ dd if=/dev/zero of=/public/studentfile bs=1M count=500
示例:
新增usrquota功能,這個chmod 777 /public 應在掛載後執行,這裡錯誤。
測試,大於20M不能執行
7.磁碟加密
1>.分割槽
fdisk /dev/vdb
2>.
cryptsetup luksFormat /dev/vdb8 #加鎖
YES
3>.
cryptsetup open /dev/vdb8 westos #起名叫westos
mkfs.xfs /dev/mapper/westos #格式化
mount /dev/mapper/westos /mnt/ #掛載
touch /mnt/file{1..10}
umount /mnt/
cryptsetup close westos ##關閉之後,/dev/mapper/westos檔案消失,掛載原始裝置也不能檢視其中的內容
cryptsetup open /dev/vdb8 linux ##重新起名字為linux
mount /dev/mapper/linux /mnt