原創文章,作者:何必呢,如若轉載,請注明出處:http://www.www58058.com/85360
硬盤物理結構
扇區 磁頭 磁道 柱面 磁道數
扇區*一個磁道上的扇區個數*磁頭數=柱面
柱面*磁道數=硬盤大小
一個扇區512字節 最小單位
單位 C H S
扇區 柱面 磁盤
MBR
硬盤中的前512字節,第一個扇區,以55aa結束的認為是有分區的,沒有則認為無。
GPT
硬盤前512字節模擬MBR創造一個分區,以55aa結束。
Hexdump 將二進制文件轉換成十六進制或八進制顯示
dd 轉換或者輔助一個文件。
分區
Fdisk 操作硬盤分區或分區表
/dev/sdX 查看硬盤分區信息
-c (centos6) 打開或禁用dos模式
-u (centos6) 切換顯示的單位(扇區/柱面)
-c (centos7) -c=dos -c=nondos
-u (centos7) -u=cylinders -u=sectors
fdisk /dev/sdX 進行分區
m 幫助
n 建立分區
d 刪除分區
p 顯示分區信息
t 轉換分區類型
a 將指定分區設置/取消 活動分區
L 查看分區類型
o 重建分區表
v 驗證分區表,顯示剩余沒有被分區劃分的扇區數量
g 創建GPT格式的分區(centos7)
q 退出不保存
w 退出并保存,不保存,所有的修改都不生效
Sync 強制同步yingpan數據
echo ‘- – -’ > /sys/class/scsi_host/host0/scan
scan 內存通信設備 傳輸信號 加載硬盤。
Lsblk 列出塊設備,分區列表
cat /proc/partitions
查詢內存中存儲的 磁盤信息
parted /dev/sdX
mklabel msdos/gpt
help
mkpart
parted /dev/sdX mkpart primary 1 1000 難用 ?。。?
gdisk 操作方式與fdisk相似
partprode 當對系統所在的硬盤進行分區修改操作后,內存不會重讀分區表,需要使用partprobe強制重讀,centos6 有bug。
partx -a /dev/sdX 向內存中增加分區更新
partx -a –nr 【N-M】 /dev/sdX 從內存中刪除分區更新
mkfs.ext4 /dev/sdb1
mkfs -t extX/xfs/btrfs/vfat /dev/sdX
mke2fs -t extX /dev/sdX
與磁盤添加文件系統。
blkid 查看所有的塊設備
-L LABEL 用卷名查找塊設備
-U UUID 用UUID查找塊設備
文件系統
mkfs 創建文件系統
-L 創建時設置卷標
-t 創建時文件系統
-b 塊設備大小
-m 管理員預留空間
-o 調整文件系統的默認掛載選項,
-U 指定UUID號
-g 塊組 設置
mke2fs 專用來創建ext格式類型的文件系統的命令。
-t 文件系統類型 ext2、ext3、ext4
-m 管理員預留大小
-g 塊組設置
tuen2fs -l 顯示詳細的超級快信息
-L 設置卷標
-o
resize2fs 可以增加或減小文件系統的大小
findfs
指定LABEL或UUID顯示分區名
tune2fs /dev/sda10 修改文件系統信息
-l 顯示文件系統信息(與dumpe2fs -h 信息基本一致)
dumpe2fs /dev/sda10 查看文件系統信息:superblock信息及block group信息
-h 不顯示block group而只顯示superblock 與tune2fs -l一致
fsck/e2fsck 先卸載再修復
-t filetype
-f 強制修復
-y 非交互式
-r 交互式
-p 自動修復
掛載
mount 設備名 掛載點
-t 指定文件系統類型
-r 只讀掛載
–remount,ro|rw 也會新/etc/fstab中的選項,如果與指定的沖突,則remount后指定的優先。
-n 隱藏掛載信息不顯示,但在/proc/mounts可以查到
-a 讀取/etc/fstab,掛載其中沒有掛載的設備
-L ‘LABEL’: 以卷標指定掛載設備
? -U ‘UUID’: 以UUID指定要掛載的設備
-B –bind 目錄掛目錄
-o 選項
sync,async 同步,異步(defaults)
atime(defaults),noatime 是否在讀訪問時更新atime
diratime(defaults),nodiratime
auto(defaults)/noauto 寫在/etc/fstab當中的分區,是否在mount -a時被掛載
exec(defatuls)/noexec 在該分區所掛載的目錄中的腳本是否可以執行。
dev(defaults)/nodev:是否支持在此文件系統上使用設備文件
suid(defaults)/nosuid:不否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫(defaults)
user/nouser(defaults):是否允許普通用戶掛載此設備,默認管理員才能掛載
acl:啟用此文件系統上的acl功能
defaults 默認,見以上中的(defaults)
開機掛載 配置文件
/etc/fstab
lsof 設備名或掛載點 查詢在該掛載點上的運行的進程
fuser -v 掛載點
-km 掛載點 強制結束所有執行在掛載點上的進程
umount 設備名/掛載點
/etc/fstab filesystem table
網絡地址掛載
172.17.253.164:/common /mnt/nfs nfs defaults 0 0
//172.17.X.X/shares /mnt/share cifs defaults,username=test,password=te st 0 0
增加swap
fdisk/gfisk 添加一個分區類型設置為82
partx -a /dev/sd? (centos6) parprode (centos7)
mkswap /dev/sd?? 也可以對文件做
swapon /dev/sd?? 手動激活
swapon -p 10 /dev/sd?? 指定優先級 數字越大優先級越高 系統設置為負數
swapoff /dev/sd?? 手動關閉
swapoff -a 禁用所有swap
swapon -s 顯示優先級
開機自動激活 寫入 /etc/fstab 后swapon -a
LABEL=SWAPA(也可以寫分區名或UUID) swap swap defaults,pri=X 0 0
移動介質鏈接監測
tail -f /var/log/message
udevadm monitor
光盤掛載
mount -o loop /root/centos69_1.iso /mnt/centos69
/root/centos69_1.iso /mnt/centos69 iso9660 defaults,loop 0 0
創建iso文件
cp /dev/cdrom /root/centos7.iso 源是設備,可以直接復制
mkisofs -r -o /root/etc.iso /etc 源是目錄或文件
刻錄光盤
wodim –v –eject centos.iso
df
-h 以人類閱讀方式
-H 以人類閱讀方式 1000為單位
-T 顯示文件系統類型
-a 顯示所有的掛載信息包含bind
-i 顯示inodes的使用信息
du 查看一個目錄與目錄下文件的總大小
-h 以人類閱讀方式
-s 顯示總和
dd
of=file 寫到所命名的文件而不是到標準輸出
if=file 從所命名文件讀取而不是從標準輸入
bs=size 指定塊大?。仁鞘莍bs也是obs)
ibs=size 一次讀size個byte
obs=size 一次寫size個byte
cbs=size 一次轉化size個byte
skip=blocks 從開頭忽略blocks個ibs大小的塊
seek=blocks 從開頭忽略blocks個obs大小的塊
count=n 只拷貝n個記錄
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/sda of=/dev/sda
0 關機 1 halt
1 單用戶模式 僅root登錄無需輸入密碼 10
3 多用戶模式 30
4 用戶自定義
5 多用戶模式+圖形化 31
6 重啟 1 reboot
poweroff init 0
reboot init 6
掛載實驗
實驗:遷移/home
init 1
vim /etc/selinux/config
SELINUX=permissive
fdisk /dev/sda
partx -a /dev/sda
mkfs.ext4 /dev/sda6
mount /dev/sda6 /mnt
cp -a /home/* /mnt
備份home
mkdir /home
vim /etc/fstab
/dev/sda6 /home ext4 defaults,usrquota,grpquota 0 2
reboot
quotacheck -cug /home
quotaon /home
quotaoff /home
edquota -u/g username
quota 查看自己的
quota -vu/vg username
repquota -avu 查看所有用戶的quota
-avg 查看所有組的quota
setquota -u liubei 20M 30M 200 300 /home
edquota -p liubei guanyu
warnquota -u 給所有超過限制的用戶發郵件
-g 當組的限制超出時,給組管理員發郵件,管理員需在/etc/quotagrpadmins 中指定 groupname: username
raid0 條帶化 chunk最小寫入單位 至少2塊盤 空間大小 單塊磁盤大小*n
raid1 鏡像 1/n 讀性能提升,寫入比單塊盤慢 空間始終是一塊盤的大小 容錯率高 可以壞 n-1塊盤
raid10 容錯高于raid01 但空間損失更多,讀寫性能 提升 造價高。
raid5 增加一塊校驗盤
raid陣列
創建raid
mdadm -C /dev/mdo -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
-C /dev/mdX(設備名) 創建設備名
-a yes 當沒有所有的/dev/mdX 設備時,自動創建該設備
-l 數字 指定類型的raid
-n 數字 指定成員數
-x 數字 指定備用盤數
-c 數字 指定chunk大小, 僅限raid0 raid5
/dev/sdX… 指定raid的成員盤
刪除raid
umount
mdadm -D /dev/md2 先查一下,該raid由哪有成員組成
mdadm -S /dev/md2
mdadm –zero-superblock /dev/sdf4
mdadm –zero-superblock /dev/sdf3
清空/etc/mdadm.conf當中,該raid的信息
mdadm /dev/md0 -f /dev/sdd 模擬將/dev/md0 raid中的sdd壞掉
mdadm /dev/md0 -r /dev/sdd 將/dev/md0 raid中的sdd 拔掉
mdadm /dev/md0 -a /dev/sdd 向/dev/md0 增加設備sdd 如數據盤不夠,則加為數據盤,如夠,加為熱備盤
mdadm -G /dev/md0 -n 6 -a /dev/sdh 將/dev/md0的數據盤設置為6個,并將/dev/sdh加入為數據盤。
mdadm -A /dev/md1 /dev/sdb /dev/sdc 當沒有將md1信息保存至mdadm.conf時,只能手動指定raid成員
mdadm -D -s > /etc/mdadm.conf 將所有的raid成員信息保存至mdadm.conf文件
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 僅將md0的信處追加保存至mdadm.conf文件
mdadm -A /dev/md1 從/etc/mdadm.conf中讀取成員信息,并僅激活md1
mdadm -A -s 從/etc/mdadm.conf中讀取成員信息,并激活所有的raid
LVM
物理卷
pvcreate /dev/設備名 創建物理卷 (可以是raid,硬盤,分區,文件)
pvremove /dev/設備名 刪除物理卷
pvs 簡略顯示物理卷信息
pvdisplay 詳細顯示物理卷信息
pvmove 將該物理卷上的數據移出該物理卷
VG組
vgcreate VG名 /dev/設備名 (可以多個)
-s 指定PE大小(PE作為VG的最小分割單位) 默認4M 最大8M
vgchange -s 可向下更改PE大小
vgreduce VG名 /dev/設備名 減少一個VG組的成員
vgextend VG名 /dev/設備名 增加一個VG組的成員
vgs 簡略查看VG的信息 跟名字可以查看單個VG的簡略信息
vgdisplay 詳細查看VG信息 跟名字可以查看單個VG的詳細信息
邏輯卷
lvcreate 創建邏輯卷
示例 lvcreate -L 大小 -n 名字 vg名
-l 數字 以PE為單位的個數
-L #{K,M} 向上靠攏PE整數個的數值
lvcreate -l # vgmage26 /dev/vgmage26/lv_0
lvcreate -L #M vgmage26 /dev/vgmage26/lv_0
lvextend 擴展邏輯卷大小
lvremove 刪除一個邏輯卷
lvreduce 減少一個邏輯卷大小
lvs 簡略顯示邏輯卷信息
lvdisplay 詳細顯示邏輯卷信息
實驗:
擴展邏輯卷
1.先檢查需要擴展的大小,VG是否有足夠可用空間
如果不夠則
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足夠則擴展邏輯卷大小
lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01
3.擴展文件系統大小
resize2fs /dev/vgmage26/lvmage26_01
或
resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系統
如果是xfs文件系統 用xfs_growfs
xfs_growfs /dev/vg01/lv01
lvextend -L +500M -r /dev/vgmage26/lvmage26_01 可在lvextend 時加-r 直接一步到位,先擴展邏輯卷大小后直接增加文件系統大小
實驗:減小邏輯卷大小 僅支持Ext文件系統
1.umount /mnt/lvmage26_01
2.e2fsck -f /dev/vgmage26/lvmage26_01
3.resize2fs /dev/vgmage26/lvmage26_01 300M
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
5.mount
實驗:將某塊盤從LVM中分離出來
1.先確保數據不在這塊PV上
用pvs查看
2.如果在這塊PV上,則將數據轉移到同卷組的其他PV上
pvmove /dev/pv1名 /dev/pv2名(可以不指定)
3.將pv從Vg中移出
vgreduce vg名 /dev/pv名
4.刪除該盤的pv屬性
pvremove /dev/pv名
實驗:將LVM遷移到其他主機
1.將數據移到目標磁盤對應的PV上。(該磁盤不要有其他與該PV無關的分區)
pvmove /dev/pv1名 /dev/pv2名
vgreduce vg名 /dev/pv(多余) 移動除要移動的PV以外的其他PV
2.確保要遷移的VG名與目的系統沒有同名的VG
vgrename vgmage26 vg02
lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必須)
3.umount /mnt/lvmage26_01/
4.vgchange -an vg02 禁用VG上的所有LV
5.vgexport vg名
關機(如果支持熱插排,則不用關機),拔硬盤,插到目標主機上。
6.pvscan
vgscan
lvscan
vgimport vg名
vgchange -ay vg名
7.mount /dev/vg名/lv名 /mnt/
lvm快照
lvcreate -L 大小{M,G,K} -n 快照名稱 -s -p r /dev/vgmage/lvmage 創建快照
-L 創建快照大小
-s 指定哪個文件的快照
-p 設定快照權限 如:r 過著rw
lvremove 快照名稱 刪除快照
lvextend -L +300M/300M 快照名稱 擴展快照
恢復源和快照
umount 源和快照
lvconvert –merge 快照明 該操作會刪除快照
mount 源
對有快照的邏輯卷進行擴展
1.umount 源和快照
2.lvchange -an 源 將源及快照設置為inactive
3.lvextend -L -r 200M 源名字 (-r不一定能用)
4.e2fsck -f 掃描
5.resize2fs/xfs_growfs …
建議,直接刪除快照,可以在線擴展邏輯卷,最后重建快照
作業:
1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄
ehco ‘- – -‘ > /sys/class/scsi_host/host2/scan
pvcreate /dev/sdX
vgcreate -s 16M testvg /dev/sdX
lvcreate -L 5G -n testlv testvg
mke2fs -t ext4 /dev/testvg/testlv
mkdir /users
mount /dev/tsetvg/tsetlv /users
2、新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換archlinux用戶,復制/etc/pam.d目錄至自己的家目錄
useradd -d /users/archlinux archlinux
cp -r /etc/pam.d
3、擴展testlv至7G,要求archlinux用戶的文件不能丟失
lvextend -L 7G -r /dev/tsetvg/tsetlv
4、收縮testlv至3G,要求archlinux用戶的文件不能丟失
umount /users
e2fsck -f /dev/tsetvg/tsetlv
resize2fs /dev/tsetvg/tsetlv 3G
lvreduce -L 3G /dev/tsetvg/tsetlv
mount /dev/tsetvg/tsetlv
5、對testlv創建快照,并嘗試基于快照備份數據,驗正快照的功能
umount 源和快照
lvconvert –merge 快照名 (該操作成功會刪除快照)
mount 源
贊 (0)
有趣的bash腳本
上一篇
2017-08-25
Shell腳本-循環基礎
下一篇
2017-08-26