磁盤管理

硬盤物理結構
     扇區  磁頭  磁道   柱面   磁道數
     扇區*一個磁道上的扇區個數*磁頭數=柱面
     柱面*磁道數=硬盤大小
     一個扇區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 源
     

原創文章,作者:何必呢,如若轉載,請注明出處:http://www.www58058.com/85360

(0)
何必呢何必呢
上一篇 2017-08-25 22:43
下一篇 2017-08-26 10:29

相關推薦

  • N27—第十周作業

    N27_第十周作業 1、請詳細描述Centos系統的啟動流程(詳細到每個過程系統做了哪些事情) 詳情請參考http://www.www58058.com/85713 2、為運行于虛擬機上的Centos 6添加一塊新的硬盤,提供兩個主分區; (1)為硬盤新建兩個主分區;并為其安裝grub (2)為硬盤的第一個主分區提供內核和ramdisk文件;為第二個分區提供…

    Linux干貨 2017-10-21
  • centos7編譯安裝zabbix

    centos7源碼編譯安裝zabbix3 centos7源碼編譯安裝zabbix3 centos7源碼編譯安裝zabbix3 系統配置和必要的安裝包 編譯安裝nginx 編譯安裝php 安裝MariaDB 安裝JDK 安裝Zabbix3.0 前戲準備 開始編譯 開始安裝 zabbix虛擬主機創建 前戲準備 開始編譯 開始安裝 php配置 前戲準備 開始編譯 …

    Linux干貨 2016-11-25
  • 轉載:UEFI和BIOS對比

    傳統BIOS開機流程     從你按下主機機殼上的電源鍵,到進入作業系統的期間,儲存于主機板上那顆EEPROM(電氣可抹除暨可程式化唯讀記憶體)里的BIOS便會開始執行以下的工作: 1. 初始化:     當電腦打開,CPU會自行重置為初始狀態,準備運作。BIOS boot block(基本輸出輸入…

    Linux干貨 2016-05-01
  • 快速刪除無用包組

    快速刪除無用組 第一步: [root@cloud ~]# yum grouplist >> list.txt 第二步: 編輯 list.txt把需要留下來的刪除 第三步: 創建腳本 remove.sh 運行 #/bin/bash # # while read…

    Linux干貨 2016-06-09
  • mysql主從復制及zabbix監控從服務器

    Mysql備份: 備份系統的構建,要注意的要點: 第一:能容忍最多丟失多少數據; 第二:恢復數據需要在多長時間內完成; 第三:需要恢復哪些數據:備份時要考慮備份完整; (1)必須做還原測試,用于測試備份的可用性; (2)還原演練;不是一個人能夠完成的; 備份類型: 完全備份:就是備份整個數據集,是從時間軸上劃分的,完整數據集;; 部分備份:只備份數據子集; …

    Linux干貨 2016-12-05
  • find命令詳解

    find命令是用來在給定的目錄下查找符合給定條件的文件   find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]   一、OPTIONS參數     -P、-L、-H:控制軟連接的對待方式,用的不多。不介紹了   二、查找路徑     就是個目錄路徑,相對和絕對都可以。   三、查找條件     (一)、根據名稱查找       -na…

    Linux干貨 2016-09-19
欧美性久久久久