一個新的磁盤盤需要經過分區、格式化(創建文件系統),掛載之后才能正常使用。關于磁盤的分區表有兩種格式:MBR(Master Boot Record)和GPT(GUID Partition Table)
????MBR:?
????也稱為主引導扇區,是計算機開機后訪問硬盤時必須讀取的首個扇區,也就是0柱面0磁頭1扇區,MBR由bootload(446字節)、分區表(64字節)、MBR結束標志(2字節)共512字節組成。最大支持2TB的分區。MBR格式的分區表支持3個主分區和1個擴展分區。
????GPT:
????為了支持容量大于2TB的分區,引入了GPT分區表格式,最大支持18EB
????
fdisk?: 磁盤分區工具
??????fdisk <disk>
????????d: 刪除一個分區
????????l: 列出系統支持的分區類型
????????m:?打印幫助
????????n: 增加一個新分區?
????????p: 打印分區表
????????q: 不保存退出
????????w:?保存退出
????????t: 改變分區ID
????
2.??partprobe(centos 5),kpartx,partx(centos 6):
????? ? partprobe <disk> :????通知OS系統磁盤分區表改變
????????partx -a <disk> :????? ?增加磁盤分區或讀取所有磁盤分區 ??
????????partx -l <disk>:????? ? ?列出磁盤所有分區?
? ? ????kpartx -af <disk> :????強制增加磁盤分區映射
????????kpartx -l <disk> :??????列出增加的磁盤分區映射? ?
3. ?mke2fs , mkfs?: ? 格式化磁盤(創建文件系統ext2,ext3,ext4)
????????mke2fs的配置文件/etc/mke2fs.conf,使用用此命令加載的默認參數。
????????mke2fs = mkfs -t ext2 = mkfs.ext2
????????mke2fs:
????????????????-t : ?文件系統類型(ext2 ?| ?ext3 ?| ?ext4 )
????????????????-j : ?相當于 -t ext3
????????????????-L Label: 設置卷標
????????????????-b ( 1024 | 2048 | 4096): 指定塊大小
????????????????-i num: num個字節預留一個inode
????????????????-N num:? 直接指定預留多少個inode
????????????????-n:????不創建文件系統,但是顯示創建過程中執行的操作
????????????????-I num:????Inode大小
????????????????-m num:? 預留管理員的空間的百分比,默認為5
????????????????-U UUID: ??使用自定義的UUID
????????????????-c:????在創建文件系統之前,檢查磁盤上壞的block
????????????????-F:????強制創建文件系統
????????????????-g:????自定義每個block-group有多少個blocks
????????????????-G:????自定義block-group的數量
? ? ? ? ? ? ? ? -O [^]feature:????指定分區特性
????????????????????? ? feature:(默認sparse_super,filetype,resize_inode,dir_index,ext_attr)
????????????????????????????dir_index:????使用b-trees hash加速大目錄查詢速度。
????????????????????????????extend:????加速大文件系統訪問(large file)
????????????????????????????filetype:????存儲文件類型信息
????????????????????????????flex_bg:????允許block-group信息放置在block的任意位置
????????????????????????????has_journal:????創建ext3日志(同-j)
????????????????????????????journal_dev:????創建外部的ext3日志替代ext2文件系統
????????????????????????????large_file:????文件系統支持大于2G的文件
????????????????????????????resize_inode:????為block-group增長提供預留空間
????????????????????????????sparse_super:????創建包含super-block備份的文件系統
????????????????????????????uninit_bg:????加速文件系統創建(僅在ext4下支持)
? ??????????????-q:????用于在腳本中靜默執行格式化
????? # mke2fs /dev/sdb1
????mke2fs 1.41.12 (17-May-2010)
????warning: 252 blocks unused.
????Filesystem label=
????OS type: Linux
????Block size=4096 (log=2)
????Fragment size=4096 (log=2)
????Stride=0 blocks, Stripe width=0 blocks
????328320 inodes, 1310720 blocks
????65548 blocks (5.00%) reserved for the super user
????First data block=0
????Maximum filesystem blocks=1342177280
????40 block groups
????32768 blocks per group, 32768 fragments per group
????8208 inodes per group
????Superblock backups stored on blocks:?
????? ? ? ? 32768, 98304, 163840, 229376, 294912, 819200, 884736
????
????Writing inode tables: done ? ? ? ? ? ? ? ? ? ? ? ? ? ?
????Writing superblocks and filesystem accounting information: done
????
????This filesystem will be automatically checked every 39 mounts or
????180 days, whichever comes first. ?Use tune2fs -c or -i to override.
????????????????
4. ?e2label
????????e2label ?<partition>: 查看卷標
????????e2label ?<partition> Label: ?設置定卷標
????????# e2label /dev/sdb1 data
5. ?blkid?
????????blkid <partition>:????查看分區類型和UUID
????# blkid /dev/sdb1
????/dev/sdb1: UUID="85ea6a34-0de2-47e8-83ee-589f79adb88a" TYPE="ext2"?
????
6. ?dumpe2fs?: 查看文件系統(ext2 , ext3 , ext4)信息
????????-h:????僅顯示super-block信息?
????? #dumpe2fs -h /dev/sdb1
????dumpe2fs 1.41.12 (17-May-2010)
????Usage: dumpe2fs [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device
????[root@test ~]# dumpe2fs -h /dev/sdb1
????dumpe2fs 1.41.12 (17-May-2010)
????Filesystem volume name: ? <none>
????Last mounted on: ? ? ? ? ?<not available>
????Filesystem UUID: ? ? ? ? ?a9771ea8-9719-4ecf-a6f2-c8b417a4878f
????Filesystem magic number: ?0xEF53
????Filesystem revision #: ? ?1 (dynamic)
????Filesystem features: ? ? ?ext_attr resize_inode dir_index filetype sparse_super ????large_file
????Filesystem flags: ? ? ? ? signed_directory_hash?
????Default mount options: ? ?(none)
????Filesystem state: ? ? ? ? clean
????Errors behavior: ? ? ? ? ?Continue
????Filesystem OS type: ? ? ? Linux
????Inode count: ? ? ? ? ? ? ?328320
????Block count: ? ? ? ? ? ? ?1310720
????Reserved block count: ? ? 65548
????Free blocks: ? ? ? ? ? ? ?1287546
????Free inodes: ? ? ? ? ? ? ?328309
????First block: ? ? ? ? ? ? ?0
????Block size: ? ? ? ? ? ? ? 4096
????Fragment size: ? ? ? ? ? ?4096
????Reserved GDT blocks: ? ? ?319
????Blocks per group: ? ? ? ? 32768
????Fragments per group: ? ? ?32768
????Inodes per group: ? ? ? ? 8208
????Inode blocks per group: ? 513
????Filesystem created: ? ? ? Fri Aug 22 13:35:10 2014
????Last mount time: ? ? ? ? ?n/a
????Last write time: ? ? ? ? ?Fri Aug 22 13:35:11 2014
????Mount count: ? ? ? ? ? ? ?0
????Maximum mount count: ? ? ?20
????Last checked: ? ? ? ? ? ? Fri Aug 22 13:35:10 2014
????Check interval: ? ? ? ? ? 15552000 (6 months)
????Next check after: ? ? ? ? Wed Feb 18 13:35:10 2015
????Reserved blocks uid: ? ? ?0 (user root)
????Reserved blocks gid: ? ? ?0 (group root)
????First inode: ? ? ? ? ? ? ?11
????Inode size: ? ? ? ? ? ? ? 256
????Required extra isize: ? ? 28
????Desired extra isize: ? ? ?28
????Default directory hash: ? half_md4
????Directory Hash Seed: ? ? ?a46fce3a-c1f4-417c-941b-c23c01a3f555
7.?tune2fs:調整文件系統參數(針對ext2,ext3,ext4)
? ??????-f:????強制tune2fs完成操作,即使有錯誤出現。
????????-l:????列出super-block信息
????????-L label:????設定卷標
????????-m:????預留管理員的空間百分比,默認為5%
????????-j:????如果原來的文件系統類型為ext2,可以通過-j提升為ext3
????????-o [^]mount-options[...]: 設定其默認掛載選項
????????????mount-options:(tune2fs支持的mout-options)
????????????????debug:????????對文件系統啟用debug code.
????????????????bsdgroups:?? ?
????????????????user_xattr:? ?啟用用戶定義的擴展屬性
????????????????acl:????????? 啟用POSIX訪問控制列表
????????????????uid16:????????禁用32位UID和GID,用于兼容老的內核?
????????????????journal_data:? 在啟用了日志的分區上,元數據寫入日志區優先于數據寫入文件系統
????????????????journal_data_ordered: 在啟用了日志的分區上,數據寫入文件系統優先于元寫??????????????????????????????????????????入日志區
????????????????journal_data_writeback: ? 在啟用了日志的分區上,當元數據寫入日志區后,數據 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可能被寫入文件系統,it may allow old data to ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?appear in ?files after a crash and journal recovery
????????????????nobarrier:????僅ext4分區支持
????????????????block_validity: ?讀寫文件系統時,額外的檢查被執行,僅ext4分區支持
????????????????discard: ?僅ext4分區支持
????????????????nodelalloc:? ?僅ext4分區支持
????????-O [^]feature[...]:?????? 調整分區特性,同mke2fs -O選項
8.?fsck:?用于檢查和修復linux文件系統
????-t:? 要檢查的文件系統類型
????-A: 嘗試檢查所有/etc/fstab文件中所有文件系統
????-C:? 顯示檢查和修復進度條
????-M: ?不檢查已掛載的文件系統
????-N:?不執行,只顯示將要做什么
????-P:? 當使用了-A時,同時檢查根文件系統和其它文件系統
????-R:?當使用了-A時,跳過根文件系統檢查
????-a:? 自動修復文件系統
????-r:? 交互式修復文件系統
????
9.?e2fsck:?用于檢查ext2,ext3,ext4文件系統
?????-f:????強制檢查
?????-F:? ? 在開始檢查之前,刷新分區的buffer cache
?????-y:????自動回答yes
10.?mount:?掛載文件系統
????-r:????只讀掛載
????-w:????讀寫掛載
????-L: ? 掛載有些卷標的分區
????-u:????掛載有些uuid的分區
????-t:????掛載的文件系統類型
????-a:????自動掛載所有
? ? -n: ? ?不更新/etc/mtab文件
????--bind dir1 dir2: 綁定dir1到dir2,可以從dir2訪問dir1的文件
????-o options: 指定掛載選項
????????async: 異步I/O
????????sync:? 同步I/O
????????atime/noatime: 更新訪問時間
????????auto/noauto: 可以使用-a選項
????????defaults: 默認選項包括(rw,suid,dev,exec,auto,nouser,aysnc,relatime)
????????dev/nodev: 允許使用字符和塊設備
????????diratime/nodiratime: 更新目錄inode訪問次數
????????dirsync:
????????exec/noexec: 允許執行二進制文件
????????group:? ?允許普通用戶掛載文件系統,如果這個用戶屬于group
????????user/nouser: 允許普通用戶掛載文件系統,此選項隱含(noexec,nodev,nosuid)
????????users: 允許每個用戶掛載文件系統,此選項隱含(noexec,nodev,nosuid)
????????iversion/noiversion: 每次inode被修改,i_version域被增加
????????mand/nomand: 允許強制鎖
????????_netdev: 阻止系統嘗試掛載網絡文件系統,直到系統的網絡準備就緒
????????nofail: 如果設備不存在,不報告錯誤
????????relatime/norelatime: 類似于atime/noatime
????????strictatime/nostrictatime:
????????suid/nosuid: 允許設置suid sgid
????????owner: ?如果用戶是設備的owner,允許他掛載文件系統
????????remount: 重新掛載文件系統
????????ro: 只讀掛載
????????_rnewdev:和_netdev一樣,除了在執行rc.sysinit時通過“fsck -a"檢查文件系統
????????rw: 讀寫掛載
????mount執行后的退出狀態碼:
????????0: success
????????1:?incorrect invocation or permission
????????2:?system error(out of memory,cannot fork,no more loop devices)
????????4:?internal mount bug
????????8:?user interrupt
????????16:problems writing or locking /etc/mtab
????????32:mount failure
????????64:some mount succeeded
????
????umount /dev/sdb1卸載文件系統
????umount /media?
????????
11.?fuser:?查看占用文件或socket的進程:
? ? # fuser -v /media
? ? ? ? ? ? ? ? ? ? ?????USER ? ? ? ?PID ACCESS COMMAND
????/media: ? ? ? ? ? ? ?root ? ? ?13156 ..c.. bash
????
????ACCESS列:表示訪問此進程的類型
????????c: 當前目錄
????????e: 可執行程序正在執行
????????f: 打開文件
????????F: 打開文件寫模式
????????r: root目錄
????????m: mmap'ed file or shared library
????# fuser -km /media ? 殺死占用/media的進程
12.?df:?查看文件系統空間使用率
????-h: 以K,M,G形式顯示
????-i:?顯示inode使用率
????-P:以POSIX格式顯示
????# df -h?
????Filesystem ? ? ? ? ? ? ? ? ?Size ?Used Avail Use% Mounted on
????/dev/mapper/vg_test-lv_root ?36G ?1.8G ? 32G ? 6% /
????? ? ? ? ? ? ? ? ? ? ? ? ? ? ?36G ?1.8G ? 32G ? 6% /
????tmpfs ? ? ? ? ? ? ? ? ? ? ? 939M ? ? 0 ?939M ? 0% /dev/shm
????/dev/sda1 ? ? ? ? ? ? ? ? ? 485M ? 37M ?423M ? 9% /boot
????/dev/sdb1 ? ? ? ? ? ? ? ? ? 5.0G ? 10M ?4.7G ? 1% /media
13.?du:?評估文件文件占用的磁盤空間
? ? # du -hs /root
? ? 55M ? ? /var
14.?開機自動掛載文件/etc/fstab
????# /etc/fstab
????# Created by anaconda on Wed Jul 23 15:22:36 2014
????#
????# Accessible filesystems, by reference, are maintained under '/dev/disk'
????# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
????#
????/dev/mapper/vg_test-lv_root / ? ? ? ? ? ? ? ? ? ? ? ext4 ? ?defaults ? ? ? ?1 1
????UUID=590c416b-9d27-4fe1-af01-fc802a7a200c /boot ? ? ext4 ? ?defaults ? ? ? ?1 2
????/dev/mapper/vg_test-lv_swap swap ? ? ? ? ? ? ? ? ? ?swap ? ?defaults ? ? ? ?0 0
????tmpfs ? ? ? ? ? ? ? ? ? ? ? /dev/shm ? ? ? ? ? ? ? ?tmpfs ? defaults ? ? ? ?0 0
????devpts ? ? ? ? ? ? ? ? ? ? ?/dev/pts ? ? ? ? ? ? ? ?devpts ?gid=5,mode=620 ?0 0
????sysfs ? ? ? ? ? ? ? ? ? ? ? /sys ? ? ? ? ? ? ? ? ? ?sysfs ? defaults ? ? ? ?0 0
????proc ? ? ? ? ? ? ? ? ? ? ? ?/proc ? ? ? ? ? ? ? ? ? proc ? ?defaults ? ? ? ?0 0
????
????第一列:要掛載的設備(設備文件,卷標,UUID)
????第二列:掛載點
????第三列:文件系統類型
????第四列:掛載選項
????第五列:轉儲頻率
????????????0:從不備份
????????????1:每日備份
????????????2:每隔一日備份
????第六列:自檢次序
????????????0:不自檢
????????????1: 首先自檢,通常只被/使用
????????????2:/自檢之后自檢
? ??
15. ?dd: convert and copy a file
????dd if=input_file of=output_file
????dd if=input_file of=output_file bs=#[b|k|m|g] count=#
????dd if=/dev/cdrom of=/tmp/centos.iso
????制作ISO文件
????dd if=/dev/sdb of=/tmp/outfile bs=512 count=1
????復制整個硬盤
????
????dd if=/dev/zero of=/dev/sdb bs=500 count=1
????刪除磁盤前500個字節
16. ?ln: 創建鏈接文件
????????硬鏈接:
????????????不能跨分區
????????????不能對目錄創建硬鏈接
????????????會改變文件被鏈接的次數
????????????與原文件指向同一個inode
????????符號鏈接:
????????????可以跨分區
????????????可以和原文件不同一個inode
????????????可以對目錄創建符號鏈接
????????????不會改變文件的被鏈接次數
17. ?壓縮工具: zip/unzip , gzip/gunzip , bzip2/bunzip2 , xz/unxz
? ? ?zip: zip用于壓縮文件、節省磁盤空間、把目錄打包成.zip文件;對于文本文件壓縮比例為2:1到3:1,zip默認使用的壓縮算法是deflation
?????命令格式:
?????zip options archive inpath inpath ...
???? archive:壓縮之后的目的文件,格式為xxx.zip
???? inpath: 目錄或是文件路徑
? ? ?options:
????????-r: 遞歸查找子目錄
????????-u: 更新archive中已存在的文件,增加新的文件
????????-f:?更新archive中已存在的文件,但是不增加新文件
????????-d: 刪除已存在的archive,創建新的archive文件
????????-U: 創建新的archive文件,結合-O選項,復制老的archive文件作為副本
????????-z: 增加備注信息
????????
?????zip結合管道使用:
????????find /root/ -name "*.sh" -print | zip -r bash.zip -@?
????????查找/root目錄下所有以sh為后綴的文件,歸檔為bash.zip文件(-@代表inpath)
????????zip -r - . | ls -l
????????-作為代替archive文件用于將archive文件寫到標準輸出stdout
????????tar cf - . | zip backup -
????????-也可以作為inpath,tar備份當前目錄,把輸出結果傳遞給zip作歸檔
????????tar cf - . | zip | dd of=/dev/nrst0 obs=16k
????????等同于
????????tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
????????tar歸檔當前目錄,zip使用tar歸檔之的文件作為輸入,然后把壓縮結果寫入到磁帶
???? unzip :解壓縮zip格式的文件
????????-d: 指定解縮目錄
????????-l: 列出archive文件中的所有文件清單
????????-v: 類似于-l,顯示更詳細的信息
????????-f: 僅解壓比磁盤上的文件更新的文件
? ? ????-u: 類似于-f,并創建磁盤上沒有文件
????????-p:?解壓文件作為標準輸出stdout
????????-t: 解壓縮文件測試
????????-z: 查看壓縮文件備注信息
???? gzip:壓縮文件之后會刪除原文件,壓縮后的格式為xx.gz
????????-c: 壓縮文件作為標準輸出stdout,可以使用重定向保留原文件
????????-d: 相當于gunzip,zcat解壓
????????-f: 強制壓縮和解壓
????????-l: 查看壓縮文件列表
????????-q: 靜默模式,常用于腳本
????????-t: 檢查壓縮文件的完整性
????????-#: 1-9指定壓縮比
???? bzip2: 壓縮文件之后會刪除原來的文件,壓縮后的格式為xx.bz2
????????-c: 壓縮或解壓縮到標準輸出stdout
????????-d: 相當于bunzip2,bzcat
????????-t: 檢查壓縮文件的完整性
????????-f: 強制覆蓋輸出文件
????????-k:壓縮后保留原文件
????????-s: 壓縮、解壓縮、檢查完整性時減少內存使用率
????????
???? xz:?
????????-z: 缺省選項,壓縮
????????-d: 相當于unxz,xzcat解壓
????????-t: 檢查壓縮文件完整性
????????-l: 查看壓縮文件列表
????????-k: 壓縮后保留原文件
????????-c: 壓縮或解壓到標準輸出stdout
????????-#: 0-9指定壓縮比例
18.?歸檔工具: tar
????tar命令格式:
????tar [options] [file]
????????options:
????????????-c: 創建歸檔文件
????????????-x: 提取歸檔文件
????????????-t: 列出歸檔文件內容
????????????-C: 改變目錄
????????????-f: 指定歸檔文件名
????????????-j: 使用bzip2
????????????-J:使用xz
????????????-z: 使用gzip
????
?????tar -jcf file.tar.bz2 file?
?????把文件file歸檔成bz2格式
?????tar -jxf file.tar.bz2
?????展開bz2文件
?????tar -Jcf file.tar.xz file
? ? ?把文件file歸檔成xz格式
???? tar -Jxf file.tar.xz
? ? ?展開xz文件
?????tar -zcf file.tar.gz file
? ? ?把文件file歸檔成gz格式
???? tar -zxf file.tar.gz
?????展開gz文件
總結
以上是生活随笔為你收集整理的linux 文件系统及磁盘管理的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。