歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux磁盤管理及文件系統

Linux磁盤管理及文件系統

日期:2017/3/1 12:25:57   编辑:關於Linux
1、Linux磁盤管理 識別硬盤設備:/dev/sd 標記不同的硬盤設備:/dev/sd[a-z] 標記同一設備上的不同分區:/dev/sd[a-z][1-] 1-4: 主或擴展分區標識 5+:邏輯分區標識 2、設備文件:特殊文件 設備號: major, minor major: 設備類型 minor: 同一類型下的不同設備 “塊”:block,隨機設備 “字符”:character,線性設備 3、分區工具: (1)fdisk, parted, sfdisk 注:最多支持在一塊硬盤上的15個分區; fdisk工具的使用: 分區管理交互式命令: p: 顯示 n: 創建 d: 刪除 t: 修改分區ID l: 列出所有支持ID類型 w: 保存退出 q: 放棄修改並退出 m: 獲取幫助 (2)創建完成之後,查看內核是否已經識別新的分區: # cat /proc/partitions 例子: [root@localhost ~]# cat /proc/partitions major minor #blocks name 8 0 125829120 sda 8 1 512000 sda1 8 262423040 sda2 8 3 2097152 sda3 253 041447424 dm-0 253 110485760 dm-1 253 210485760 dm-2 (3)有三個命令可以讓內核重讀磁盤分區表: CentOS 5: partprobe [DEVICE] CentOS 6,7: partx kpartx partx命令: partx DEVICE partx -a DEVICE partx -a -n M:N DEVICE kpartx命令: kpartx -af DEVICE 例子: [root@localhost ~]# partx -a /dev/sda [root@localhost ~]# cat /proc/partitions major minor #blocks name 8 0 125829120 sda 8 1 512000 sda1 8 262423040 sda2 8 3 2097152 sda3 8 431 sda4 8 510488317 sda5 8 620980858 sda6 253 041447424 dm-0 253 110485760 dm-1 253 210485760 dm-2 [root@localhost ~]# ls /dev/sda sdasda1 sda2 sda3 sda4 sda5 sda6 4、Linux文件系統管理 (1)文件系統: VFS:Virtual File System Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap 光盤:iso9660 Windows: fat32(vfat), ntfs Unix: ffs, ufs, jfs, jfs2 網絡文件系統:nfs, cifs 集群文件系統:ocfs2, gfs2 分布式文件系統:ceph, moosefs, mogilefs, hdfs, gfs, glusterfs (2)日志型文件系統 非日志型文件系統:ext2 日志型文件系統:ext3 (3)swap:交換分區 5、創建文件系統: 在分區上執行格式化(高級格式化) 要使用某種文件系統,滿足兩個條件: 內核中:支持此種文件系統 用戶空間:有文件系統管理工具 (1)創建工具:mkfs (make filesystem) mkfs -t type DEVICE mkfs.type DEVICE (2)ext系列文件系統的專用管理工具: mke2fs -t {ext2|ext3|ext4} DEVICE -b BLOCK: 1024, 2048, 4096 -L ‘LABEL‘: 設定卷標 (3)blkid命令: UUID---Universally Unique Identifiers 全局唯一標識符: blkid DEVICE LABEL, UUID, TYPE 例子: [root@localhost ~]# blkid /dev/sda1 /dev/sda1: UUID="dbde3019-886c-4eb3-8a79-b15825f7f929" TYPE="ext4" 6、Linux文件系統管理: (1)創建文件系統: mkfs, mkfs -t type = mkfs.type ext:mke2fs mke2fs [OPTION]... DEVICE -t {ext2|ext3|ext4} -b {1024|2048|4096} -L ‘LABEL‘ -j: mke2fs -t ext3 -i #: -N #: -m #: 預留磁盤空間占據多大百分比的空間為後期管理使用; O FEATURE[,...] -O ^FEATURE:關閉此特性 has_journal (2)文件系統屬性查看及調整工具: e2label #不影響分區中的數據 e2lable DEVICE [LABEL] (3)顯示ext系列文件系統的屬性,或調整其屬性; tune2fs #不影響分區中的數據 -l:顯示超級塊中的信息;顯示整個文件的屬性及布局等相關信息; -L ‘LABEL‘:修改卷標; -m #: 調整預留給管理員的管理空間百分比; -j: ext2 --> ext3 -O:文件系統屬性的啟動或關閉 -o:文件系統默認掛載選項的啟用或關閉 (4)dumpe2fs: -h: 僅顯示超級塊信息; 例子: [root@localhost ~]# mke2fs -L lisir -t ext4 /dev/sda5 mke2fs 1.41.12 (17-May-2010) 文件系統標簽= 操作系統:Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 655776 inodes, 2622079 blocks 131103 blocks (5.00%) reserved for the super user ........ [root@localhost ~]# tune2fs -o acl /dev/sda5 #開啟acl tune2fs 1.41.12 (17-May-2010) [root@localhost ~]# tune2fs -L lisir01 /dev/sda5 #修改卷標 tune2fs 1.41.12 (17-May-2010) [root@localhost ~]# tune2fs -l /dev/sda5 #查看分區信息 tune2fs 1.41.12 (17-May-2010) Filesystem volume name:lisir01 Last mounted on: <not available> Filesystem UUID: 1d305c60-761e-447e-b585-6c2416d13228 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features:has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags:signed_directory_hash Default mount options: acl 7、文件系統檢測: 注:由於硬盤常年讀寫,系統會造成系統文件損壞,導致重啟後無法登陸到系統,fsck不僅可以對文件系統進行掃描,還能修正文件系統的一些問題。值得注意的是fsck掃描文件系統時一定要在單用戶模式、修復模式或把設備umount後進行。 (1)fsck: Filesystem check fsck -t type fsck.type -a: 自動修復錯誤 -r: 交互式修復錯誤 -f: 強制檢測 (2)e2fsck:ext系列文件系統專用的檢測修復工具; -y: 自動回答為“yes” f:force (3)文件系統的掛載和使用: kernel --> rootfs(分區) rootfs分區: bin, sbin, etc, lib, lib64, dev, tmp, proc, sys /sbin/init 將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件系統訪問 入口的行為,稱之為掛載; 解除此關聯關系的過程:卸載; 掛載點:mount point, 設備掛載至目錄; 注意:掛載點在掛載在之後,其內部原有的文件會被暫時隱藏;建立使用空目錄做為掛載點; 例子: [root@localhost ~]# fsck.ext4 -a /dev/sda5 #自動修復sda5磁盤錯誤 lisir01: clean, 11/655776 files, 79700/2622079 blocks [root@localhost ~]# fsck.ext4 -f /dev/sda5 #強制檢測磁盤sda5 e2fsck 1.41.12 (17-May-2010) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄連接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 lisir01: 11/655776 files (0.0% non-contiguous), 79700/2622079 blocks 8、掛載方法: mount:通過讀取/etc/mtab文件來顯示當前系統所有已經掛載的設備; mount -a:掛載/etc/fstab文件中的所有支持自動掛載的文件系統; mount [options] [-o options] DEVICE MOUNT_POINT [options]:命令選項 [-o options]:掛載選項 -o 掛載選項: async:異步模式 sync: 同步模式 atime/noatime:是否更新訪問時間戳; diratime/nodiratime:是否更新目錄的訪問時間戳; auto/noauto: 是否允許此設備被自動掛載; exec/noexec:是否允許執行此文件系統上應用程序; dev/nodev:是否支持在此設備上使用設備文件; suid/nosuid: remount:重新掛載 ro rw user/nouser: 是否允許普通掛載此設備; acl:是否支持此設備上使用facl; defaults:rw, suid, dev, exec, auto, nouser, and async DEVICE: 要掛載的設備 (1) 設備文件:/dev/sda5 (2) 卷標:-L ‘LABEL‘ (3) UUID:-U ‘UUID‘ (4) 偽文件系統名稱 MOUNT_POINT: 掛載點 常用選項: -t type:文件系統類型 -r: 以“只讀”方式掛載此文件系統 -w: 以“讀寫”方式掛載此文件系統 -n:每個文件系統在掛載時都會自動更新/etc/mtab文件,-n用於禁止此功能; 此時,如果想查看掛載的所有文件系統:cat /proc/mounts -a: 自動掛載所有支持自動掛載的設備; -B:綁定目錄至另一個目錄上; umount:卸載命令 # umount DEVICE # umount MOUNT_POINT 查看正在訪問指定掛載點的進程: # fuser -v MOUNT_POINT 終止所有正在訪問指定的掛載點的進程: # fuser -km MOUNT_POINT 例子: [root@localhost ~]# umount /mydata/ umount: /mydata: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@localhost ~]# fuser -v /mydata/ 用戶 進程號 權限命令 /mydata/:root 3764 ..c.. bash [root@localhost ~]# fuser -km /mydata/ /mydata/: 3764c [root@localhost ~]# umount /mydata/ 9、交換分區: (1)free命令: 查看memory和swap的使用狀態 -m: 以MB為單位 -g: 以GB為單位 (2)mkswap:創建交換分區 mkswap [option] DEVICE -L ‘LABEL‘ (3)swapon:啟用交換分區 swapon [option] [DEVICE] -a: 激活所有交換分區 -p PRIORITY: 設定其優先級; (4)swapoff:禁用交換分區 swapoff [option] [DEVICE] 例子: [root@localhost ~]# mkswap -L swap01 /dev/sda6 Setting up swapspace version 1, size = 20980852 KiB LABEL=swap01, UUID=3835c7ba-8b9b-4047-931c-a19eed79d7c4 [root@localhost ~]# swapon -s Filename TypeSize Used Priority /dev/sda3 partition 2097148 0 -1 [root@localhost ~]# swapon -a /dev/sda6 [root@localhost ~]# swapon -s Filename TypeSize Used Priority /dev/sda3 partition 2097148 0 -1 /dev/sda6 partition 20980852 0 -2 [root@localhost ~]# free -m total used free shared buffers cached Mem: 988 728 260 318 327 -/+ buffers/cache: 382 606 Swap: 22537 022537 10、文件系統等空間占用信息的查看工個: (1)df: disk free -h: human-readable -i: inode數量 -P: 以Posix兼容的格式輸出 (2)du: disk usage -h: human-readable -s: summary 11、文件系統相關掛載配置文件:/etc/fstab 每行定義一個文件系統; 要掛載的設備: 設備文件、LABEL=、UUID=、偽文件系統名稱 掛載選項: defaults、acl 轉儲頻率: 0: 不轉儲 1: 每天轉儲 2: 每隔一天轉儲 自檢次序: 0:不自檢 1:首先自檢,通常只有/才為1 2: 12、文件系統上的鏈接文件: 硬鏈接: 兩個路徑指向同一個inode 不能對目錄進行; 不能跨分區進行 指向同一個inode的多個不同路徑; 創建文件的硬鏈接會增加inode的引用計數;刪除硬鏈接僅是刪除 其一個訪問路徑,只到最後一個路徑被刪除; 符號鏈接: 鏈接文件的數據指向另一個文件路徑; 可以對目錄進行; 可以跨分區; 指向的是另一個文件路徑;而非inode; 對文件創建符號鏈接不會增加其引用計數;刪除原文件,符號鏈接文件也將無法; ln [-s] SRC DEST -s:symbolic link -v:verbose 例子: [root@localhost ~]# ln -s /etc/fstab ./123 [root@localhost ~]# ll 總用量 100 lrwxrwxrwx. 1 root root 10 9月7 15:28 123 -> /etc/fstab
Copyright © Linux教程網 All Rights Reserved