磁盤:
設備型別:
塊設備:block,磁盤
字符設備:char,鍵盤
brw-rw----. 1 root disk 8, 0 Nov 3 09:42 sda
主設備號 次設備號
查看硬碟型別:
cat /sys/block/sda/queue/rotational
0 --表示固態硬碟
1 --表示機械硬碟
head:磁頭
track:磁道
cylinder:柱面
sector:扇區,512bytes
尋址方式:
CHS采用24bit尋址
前10位表示cyliner(1024),中間8位表示head(255),后6位表示sector(63)
每扇區512位:
最大尋址空間8G:1024*255*63*512
LBA
ATA-1中定義了28位尋址模式,以每扇區512位來計算,上限為128GiB
ATA-6規范中采用48位LBA,同樣以每扇區512位組計算容量上限為128Petabytes
磁區:
一,磁區的好處:
優化I/O性能
實作磁盤空間配額限制
提高修復速度
隔離系統和程式
安裝多個OS
采用不同檔案系統
二,磁區方式:
MBR和GPT
磁區表備份:
dd if=/dev/sda of=/data/dpt bs=1 count=66 skip=446 跳過(源)sda的前446個位元組,備份后66個位元組
破壞磁區表:
dd if=/dev/zero of=/dev/sda bs=1 count=2 seek=510 跳過(目標)sda的前510個位元組,只破壞最后2個位元組
還原:
dd if=/dev/dpt of=/dev/sda ba=1 count=2 skip=64 seek=510 跳過(源)dpt前64位元組,(目標)sda前510位元組,進行恢復
hexdump -C -n 512 /dev/sda --查看/dev/sda的前512個位元組
三,磁區工具:
fdisk 用于MBR磁區
gdisk 用于GPT磁區
parted 高級磁區操作
新添加磁盤后可以通過該命令掃描磁盤:
echo '- - -' > /sys/class/scsi_host/host0/scan 或
echo '- - -' > /sys/class/scsi_host/host2/scan
(1)parted用法:
select /dev/sdb 選擇sdb磁盤
mklabel gpt|msdos 創建標簽,gpt或msdos
print 看磁區資訊
mkpart sdb1 1 200 (默認M),sdb1為磁區名稱,1位起始,200為結束
rm 1 洗掉1磁區
parted –l 列出磁區資訊
示例:
[root@server ~]# parted
(parted) select /dev/sdb //選擇磁盤sdb
Using /dev/sdb
(parted) mklabel gpt //將MBR磁盤格式化為GPT
(parted) mkpart
Partition name? []?
File system type? [ext2]?
Start? 0
End? 2996G //0 - 2996GB
0表示磁區的開始 -1表示磁區的結尾 意思是劃分整個硬碟空間為主磁區
(2)fdisk,gdisk用法:
子命令:
p 磁區串列
t 更改磁區型別
n 創建新磁區
d 洗掉磁區
v 校驗磁區
w 保存并退出
q 不保存并退出
四,查看磁區:
1,fdisk -l /dev/sdv
2,ls /dev/sdb*
3,cat /proc/partitions 查看內核是否已經識別新的磁區
4,lsblk
五,同步磁區表:
centos5/centos7:
partprobe /dev/sdb centos6使用partprobe會出現問題
centos6:(通知內核重新讀取硬碟磁區表)
kpartx -a /dev/sdb -f:force
partx -a /dev/sdb --加磁區
partx -d -nr 2-3 /dev/sdb --洗掉磁區
查看支持的檔案系統:
ll /lib/modules/`uname -r`/kernel/fs
Linux的虛擬檔案系統:VFS
六,格式化磁區:
創建xfs檔案系統
mkfs.xfs -t FS_TYPE -L 'LABEL' /dev/DEVICE
創建ext檔案系統
mke2fs:ext系列檔案系統專用管理工具
-t {ext2|ext3|ext4} 指定檔案系統型別
-b {1024|2048|4096} 指定塊大小
-L ‘LABEL’ 設定卷標
-j 相當于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # 為資料空間中每多少個位元組創建一個inode;不應該小于block大小
-N # 指定磁區中創建多少個inode
-I 一個inode記錄占用的磁盤空間大小,128---4096
-m # 默認5%,為管理人員預留空間占總空間的百分比
-O FEATURE[,...] 啟用指定特性
-O ^FEATURE 關閉指定特性
blkid:塊設備屬性資訊查看
e2label:管理ext系列檔案系統的LABEL
e2label /dev/sdb1 sdb1-1 修改sdb1的LABEL為sdb1-1
findfs:查找磁區
findfs LABEL=sdb1-1 查找LABEL為sdb1-1的設備
findfs UUID=***
tune2fs:重新設定ext系列檔案系統可調整引數的值
tune2fs -l /dev/sdb1
-l 查看指定檔案系統超級塊資訊;super block
-L 'LABEL’ 修改卷標
-m 修預留給管理員的空間百分比
-j 將ext2升級為ext3
-O 檔案系統屬性啟用或禁用, –O ^has_journal
-o 調整檔案系統的默認掛載選項,–o ^acl
-U UUID 修改UUID號
dumpe2fs:顯示ext檔案系統資訊,將磁盤塊分組管理
-h:查看超級塊資訊,不顯示分組資訊 ?
xfs_info:顯示已掛載的 xfs 檔案系統資訊
xfs_info mountpoint
七,掛載檔案系統:
mount /dev/DEVICE MOUNT_POINT
centos6:
mknod /dev/loop8 -b 7 8 --手動創建loop設備
vim /boot/grub/grub.conf
max_loop=100 重啟系統會自動生成100個loop設備
losetup /dev/loop8 /data/disk1 --將shebloop8與檔案disk1關聯
losetup -a --查看關聯資訊
mount /dev/loop8 /mnt/disk1
查看掛載情況
findmnt MOUNT_POINT|device --finemnt /dev/sdb5
查看正在訪問指定檔案系統的行程
lsof MOUNT_POINT
fuser -v MOUNT_POINT --可以看到使用設備的用戶
終止所有在正訪問指定的檔案系統的行程
fuser -km MOUNT_POINT
八,卸載檔案系統
umount DEVICE/MOUNT_POINT
uuidgen --生成UUID
九,檔案掛載組態檔
/etc/fstab每行定義一個要掛載的檔案系統
1、要掛載的設備或偽檔案系統設備檔案
LABEL:LABEL=""
UUID:UUID=""
偽檔案系統名稱:proc, sysfs
2、掛載點 ?
3、檔案系統型別:ext4,xfs,iso9660,nfs,none
4、掛載選項:defaults ,acl,bind
5、轉儲頻率:0:不做備份 1:每天轉儲 2:每隔一天轉儲
6、fsck檢查的檔案系統的順序:允許的數字是0 1 2
0:不自檢
1:首先自檢;一般只有rootfs才用
2:非rootfs使用
十,檔案系統檢測和修復:
檔案系統夾故障常發生于死機或者非正常關機之后,掛載為檔案系統標記為“no clean”
注意:一定不要在掛載狀態下執行下面命令修復
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
注意:FS_TYPE 一定要與磁區上已經檔案型別相同
-a 自動修復
-r 互動式修復錯誤
e2fsck:ext系列檔案專用的檢測修復工具
-y 自動回答為yes
-f 強制修復
-p 自動進行安全的修復檔案系統問題
xfs_repair:xfs檔案系統專用檢測修復工具
-f 修復檔案,而設備
-n 只檢查
-d 允許修復只讀的掛載設備,在單用戶下修復 / 時使用,然后立即reboot
示例1:
擴展swap空間
1,在sdb新建磁區sdb1,size為2G,型別為82(swap)
fdisk /dev/sdb
2,將磁區寫入特殊簽名swap:
mkswap /dev/sdb1
3,激活交換空間,將swap資訊寫入/etc/fstab中
UUID=*** swap swap defsults 0 0
4,激活swap
swapon -a
5,查看swap資訊
swapon -s
修改swap優先級(有多個磁區作為swap空間):
1,修改/etc/fstab檔案中swap行,defaults修改為pri=VALUE,VALUE為優先級
2,禁用swap
swapoff -a
3,激活swap
swapon -a
可以指定swap磁區0到32767的優先級,值越大優先級越高
以檔案作為swap空間使用:
1,創建swapfile檔案
dd if=/dev/zero of=/swapfile bs=1M count=2048
2,將磁區寫入特殊簽名:
mkswap swapfile
3,資訊寫入/etc/fstab中,只能用檔案名,不能使用UUID
/swapfile swap swap defaults 0 0
4,激活swap
swapon -a
檔案夾掛檔案夾
/boot /mnt/boot none bind 0 0
掛載光碟
/dev/sro /mnt/cdrom iso9660 defaults 0 0
示例2:
遷移home到新的磁區
(建議在維護模式,init 1)
1,新建磁區/dev/sda3
fdisk /dev/sda
2,同步磁區表
partprobe
3,創建檔案系統mkfs
mkfs.xfs /dev/sda3
4,新建一個目錄用于存放home資料
mkdir /mnt/home
5,將/mnt/home掛載給將來home要使用的磁區
mount /dev/sda3 /mnt/home
6,將home目錄下的資料拷貝到/mnt/home
cp -a /home/* /mnt/home/
7,洗掉home中的資料(生產環境需要觀察一段時間,運行無誤后再洗掉)
rm -rf /home/*
8,卸載/mnt/home,并掛載home到/dev/sda3
umount /mnt/home
mount -a
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/158244.html
標籤:Linux
