文件系統與分區

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...