CHS cylinder-head-sector
cylinder柱面=track*head=512*63*256=8M
磁盤分區
為什么是分區?
? 優化I/O 性能
? 實現磁盤空間配額限制
? 提高修復速度
? 隔離系統和程序
? 安裝多個OS
? 采用不同文件系統
MBR:使用32位表示扇區數量,按每扇區512字節計算,每個分區最大不能超過2TB
(Globals Unique Identifiers Partition Table,縮寫:GPT)是一個實體硬盤的分區表的結構布局的標準。它是可擴展固件接口(EFI)標準,被用于替代BIOS系統中的一32bits來存儲邏輯塊地址和大小信息的主開機紀錄(MBR)分區表。GPT支持128個分區,使用128 位UUID 區 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC 校驗位
EFI部分又可以分為4個區域:EFI信息區(GPT頭)、分區表、GPT分區、備份區域
管理分區
列出塊設備 lsblk
創建分區使用:
fdisk創建MBR 分區,也支持GPT ,對于一塊硬盤,最多只能管理15分區
gdisk創建GPT 分區
GNU parted 高級分區操作(創建、復制、調整大小等等)
partprobe-重新設置內存中的內核分區表版本
centos7
fdisk -l -u=cylinders /dev/sda //以柱面顯示
fdisk -l /dev/sda //以扇區顯示
echo "- – -" > /sys/class/scsi_host/host2/scan //不重啟,識別到新加硬盤
hexdump -C -n 512 /dev/sda //查看頭文件
(1)
dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512 //備份頭文件
hexdump -v -C /testdir/mbrbak //顯示同(1)說明備份成功
dd if=/testdir/mbrbak of=/dev/sdb //恢復分區表
fdisk -l /dev/sdb //分區信息同/dev/sda
dd if=/dev/zero of=/dev/sdb bs=1 count=446 //破壞/dev/sdd前446個字節
hexdump -C -n 512 /dev/sdb //檢查發現頭文件的前部分被0填充
dd if=/dev/zero of=/dev/sdb bs=1 count=2 skip=510 seek=510 //清掉最后的兩字節55A,標志位
fdisk -l /dev/sdb 無分區信息
fdisk /dev/sdb
子命令:
p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
w 保存并退出
q 不保存并推出
查看內核是否已經識別新的分區
通知內核重新讀取硬盤分區表
新增分區用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
刪除分區用
partx -d -n M:N /dev/DEVICE
centos 6: –nr N-M //specify the range of partitions
centos 5,7: 使用partprobe
partprobe [/dev/DEVICE]
parted 的操作都是實時生效的
用法:parted [ 選項]… [設備 [令 命令 [ 參數]…]…]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默認M)
parted /dev/sdb rm 1
parted -l
也可parted device 進入交互式界面操作
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統, 簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組 織和分配,負責文件存儲并對存入的文件進行保護和檢索的 系統。具體地說,它負責為用戶建立文件,存入、讀出、修 改、轉儲文件,控制文件的存取,安全控制,日志,壓縮, 加密等。
文件系統類型
Linux 文件系統: ext2(Extended file system), ext3/4, xfs(SGI公司), btrfs(Oracle), reiserfs, jfs(AIX ), swap
光盤:iso9660
Windows :fat32, ntfs
Unix: FFS (fast ), UFS (unix ), JFS2
網絡文件系統:NFS, CIFS
集群文件系統:GFS2, OCFS2 (oracle)
分布式文件系統:ceph, moosefs, mogilefs, glusterfs, Lustre
RAW: 未經處理或者未經格式化產生的文件系統
根據其是否支持"journal" 功能:
日志型文件系統: ext3, ext4, xfs, …
非日志型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux 的虛擬文件系統:VFS
查前支持的文件系統:cat /proc/filesystems
lsmod //查看加載的模塊
lsmod|grep xfs
VFS是一個可以讓open()、read()、write()等系統調用不用關心底層的存儲介質和文件系統類型就可以工作的粘合層
在Linux下,通過VFS,一個抽象的通用訪問接口屏蔽了底層文件系統和物理介質的差異性
Linux硬盤組織方式為:引導區、超級塊(superblock),索引結點(inode),數據塊(datablock),目錄塊(diredtory block).其中超級塊中包含了關于該硬盤或分區上的文件系統的整體信息,如文件系統的大小等;超級塊后面的數據結構是索引結點,它包含了針對某一個具體文件的幾乎全部信息,如文件的存取權限、所有者、大小、建立時間以及對應的目錄塊和數據塊等;數據塊是真正存儲文件內容的位置.但是索引結點中不包括文件的名字,文件名是放在目錄塊里的.目錄塊里包含有文件的名字以及此文件的索引結點編號.
創建文件系統
mkfs.FS_TYPE /dev/DEVICE
ext4|xfs|btrfs|vfat
mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 設定卷標
mke2fs :ext 系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j: 相當于 -t ext3 //journal 日志
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為數據空間中每多少個字節創建一個inode ;此大 小不應該小于block 的大小
-N # :為數據空間創建個多少個 個inode
-I 一個inode 記錄大小128—4096
-m #: 默認5%, 為管理人員預留空間占總空間的百分比
mkfs.ext4 -m 1 /dev/sdb1 //調為1%
-O FEATURE[,…] :啟用指定特性
-O ^FEATURE
-f:強制轉為xfs文件系統
文件系統標簽
blkid :塊設備屬性信息查看
blkid [OPTION]… [DEVICE]
-U UUID: 根據指定的UUID 來查找對應的設備
-L LABEL :根據指定的LABEL 來查找對應的設備
根據/etc/fstab中/boot目錄的UUID查找對應的設備
blkid -U `sed -nr "s/UUID=(.*) \/boot.*/\1/p" /etc/fstab` 或
blkid -U `cat /etc/fstab |grep boot|cut -d' ' -f1|cut -c6-`
e2label :管理ext 系列文件系統的LABEL
e2label DEVICE [LABEL]
findfs :查找分區
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
tune2fs :重新設定ext 系列文件系統可調整參數的值
-l :查看指定文件系統超級塊信息;super block
-L 'LABEL' :修改卷標
-m # :修預留給管理員的空間百分比
-j: 將ext2 升級為ext3
-O: 文件系統屬性啟用或禁用,
tune2fs -O ^has_journal /dev/sdb1 //取消日志
tune2fs -l /dev/sdb1 看不到has_journal ,blkid 看到/dev/sdb1 無TYPE="ext3")
-o: 調整文件系統的默認掛載選項,–o ^acl
-U UUID: 修改UUID號
xfs系統用tune2fs -l查看無效
vfat系統不區分大小寫,權限755,不受umask管制,不安全
dumpe2fs:
-h :查看超級塊信息(分組信息),分區用分組管理
dumpe2fs /dev/sdb1
文件系統檢測和修復:
常發生于死機或者非正常關機之后
掛載為文件系統標記為“dirty” ”
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自動修復錯誤
-r: 交互式修復錯誤
注意: FS_TYPE 一定要與分區上已經文件類型相同
e2fsck :ext 系列文件專用的檢測修復工具
-y:自動回答為yes
-f :強制修復
mke2fs -t ext4 /dev/sdb3
dd if=/dev/zero of=/dev/sdb3 bs=1k count=10 //破壞超級塊
tune2fs -l /dev/sdb3 顯示bad magic number
e2fsck /dev/sdb3 //修復得在非掛載情況下進行,否則容易造成破壞
fuser -km /mnt/sdb2 //kill,換成根自殺
掛載:將額外文件系統與根文件系統某現存的目錄建立關聯,進而使得此目錄做為其它文件訪問入口的行為
用mount命令掛載文件系統 mount DEVICE MOUNT_POINT
mount :通過查看/etc/mtab
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device :指明要掛載的設備;
(1)設備文件
(2)卷標:-L 'LABEL'
(3)UUID, -U 'UUID'
(4)偽文件系統名稱:proc, sysfs, devtmpfs, configfs
dir :掛載點
事先存在;建議使用空目錄
進程正在使用中的設備無法被卸載
常用選項:
-t vsftype :指定要掛載的設備上的文件系統類型
-r: readonly ,只讀掛載
-w: read and write, 讀寫掛載
-n: 不更新/etc/mtab ,相當于#mount
-a:自動掛載所有支持自動掛載的設備( 定義在了/etc/fstab 文件中,且掛載選項中有auto功能)
-B, –bind: 綁定目錄到另一個目錄上
mount -B /boot/ /mnt/boot //兩個目錄都看到一致的內容,因為是同樣的文件
-o options :( 掛載文件系統的選項) ,多個選項使用逗號分隔
async :異步模式
sync :同步模式, 內存更改時,同時寫磁盤
mount -o sync /dev/sdb1 /mnt/sdb1
atime/noatime :包含目錄和文件
diratime/nodiratime :目錄的訪問時間戳
auto/noauto :是否支持自動掛載, 是否支持-a 選項
exec/noexec :是否支持將文件系統上運行應用程序
dev/nodev :是否支持在此文件系統上使用設備文件
suid/nosuid :是否支持suid 和sgid 權限
remount :重新掛載
mount -o,remount,noexec /mnt/sdb1
ro :只讀
rw:讀寫
user/nouser :是否允許普通用戶掛載此設備,默認管理員才能掛載
acl :啟用此文件系統上的acl 功能
Defaults :相當于rw, suid, dev, exec, auto, nouser, async
mknod cdrom b 11 0 ////生成cdrom這個設備
mount ./cdrom /mnt/boot
cd /mnt/boot 可以訪問光盤內容
centos7
yum install autofs
systemctl start autofs
根目錄下出現misc目錄
cd /misc
cd cd //掛載光盤
原創文章,作者:victorycommander,如若轉載,請注明出處:http://www.www58058.com/41587