主頁 > 作業系統 > 檔案系統與磁區

檔案系統與磁區

2020-10-05 23:25:50 作業系統

磁盤:


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

上一篇:Ubuntu 18.04通過命令禁用/開啟觸控板

下一篇:Prometheus(三):Prometheus監控交換機(snmp)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more