文件系統與分區

来源:https://www.cnblogs.com/wangyanqiang/archive/2019/11/04/11790356.html
-Advertisement-
Play Games

磁碟: 設備類型: 塊設備:block,磁碟 字元設備:char,鍵盤 brw-rw . 1 root disk 8, 0 Nov 3 09:42 sda 主設備號 次設備號查看硬碟類型: cat /sys/block/sda/queue/rotational0 --表示固態硬碟1 --表示機械硬碟 ...


磁碟:


設備類型:
    塊設備: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



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 管理用戶 刪除用戶 若使用 userdel myuser 命令刪除該用戶時,並不能刪除該用戶的所有信息,只是刪除了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四個文件里的該賬戶和組的信息。預設情況下創建一個用戶賬號,會創建一個家目錄和一個用戶郵箱( ...
  • 在這篇文章中,將會列出讓一些令 Linux 用戶印象最深刻且精美的 Linux 發行版,包括對初學者友好和流行的發行版。 1. elementary OS elementary OS 是一款基於 Ubuntu 精心打磨美化的桌面 Linux 發行版,號稱是最漂亮的 Linux 發行版。事實上,Ele ...
  • 之前搭建openvpn和easy2.0組合,第一次幫朋友搭建easy3.0組合感覺比2.0麻煩一些,參考了很多技術文章 搭建yum install -y install openvpn easy-rsa net-tools bridge-utilscd /usr/share/easy-rsa/3./ ...
  • 廢話不多說,直接進入主題。 1、安裝mailx [root@localhost ~]#yum install malix -y #yum安裝malix [root@localhost ~]# vi /etc/malix.rc #配置郵箱,配置第三方軟體發送郵件。 2、在配置文件的最後添加第三方郵件的 ...
  • 通常的Cortex-M內核MCU一般都會內嵌並行NOR Flash,這個並行NOR Flash是直接掛在Cortex-M內核高性能AHB匯流排上的,知名IDE如果支持這款MCU,也都會同時集成對應Flash的下載演算法,方便用戶直接在IDE里下載代碼進Flash和XIP調試,但是i.MXRT內部並沒有F... ...
  • 1.poweroff 功能描述:可以關閉Linux系統,關閉記錄會被寫入/var/log/wtmp日誌文件中 命令語法:poweroff [選項] 選項含義: -n:關閉之前不同步 -p:當被稱為halt時關閉電源 -v:增加輸出,包括消息 -q:降低輸出錯誤唯一的消息 -w:並不實際關閉系統,只是 ...
  • 1.電腦組成 2.開發介面標準 ABI--(Application Binary Interface) ABI描述了應用程式與OS之間的底層介面,允許編譯好的目標代碼在使用相容ABI的系統中無需改動就能運行。 API--(Application Programming Interface) API ...
  • 預設已安裝Prometheus服務,服務地址:192.168.56.200 一、獲取交換機snmp信息 snmp服務IP(交換機IP):172.20.2.83 snmp community:dfetest 二、部署 snmp_exporter 2.1 下載snmp_exporter 下載snmp_e ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...