設備文件
I/O Ports: I/O 設備地址
一切皆文件:
open(), read(), write(), close()
設備類型:
塊設備:block ,存取單位“塊”,磁盤
[root@localhost ~]# ll /dev/ brw-rw----. 1 root disk 253, 0 Apr 29 03:53 dm-0 塊設備 brw-rw----. 1 root disk 253, 1 Apr 29 03:53 dm-1 塊設備
字符設備:char ,存取單位“字符”,鍵盤
[root@localhost ~]# ll /dev/ total 0 crw-rw----. 1 root video 10, 175 Apr 29 03:53 agpgart 字符設備 crw-------. 1 root root 10, 235 Apr 29 03:53 autofs 字符設備
區別: 塊設備是物理存在的設備,進行訪問時基于隨機訪問;有緩存
字符設備邏輯上并不存在,進行訪問時基于順序訪問;無緩存
設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信
[root@localhost ~]# ll /dev/ 存放在/dev/目錄下 total 0 crw-rw----. 1 root video 10, 175 Apr 29 03:53 agpgart crw-------. 1 root root 10, 235 Apr 29 03:53 autofs crw-------. 1 root root 10, 61 Apr 29 03:53 cpu_dma_latency crw-------. 1 root root 10, 62 Apr 29 03:53 crash brw-rw----. 1 root disk 253, 0 Apr 29 03:53 dm-0 brw-rw----. 1 root disk 253, 1 Apr 29 03:53 dm-1 brw-rw----. 1 root disk 253, 2 Apr 29 03:53 dm-2
設備號碼:
主設備號:major number, 標識設備類型
次設備號:minor number, 標識同一類型下的不同設備
[root@localhost ~]# ll /dev/sda* b(設備類型)rw-rw----. 1 root disk 8, 0(主要編碼,次要編碼) Apr 29 03:53 /dev/sda b(設備類型)rw-rw----. 1 root disk 8, 1(主要編碼,次要編碼) Apr 29 03:53 /dev/sda1 b(設備類型)rw-rw----. 1 root disk 8, 2(主要編碼,次要編碼) Apr 29 03:53 /dev/sda2
硬盤接口類型
并行:
IDE :133MB/s
SCSI :640MB/s
串口:
SATA :6Gbps
SAS :6Gbps
USB :480MB/s
rpm: rotations
per minute (每分鐘轉速)
接口速度為理論值
內存單位:B K M G T P E Z Y B N D
1B=81bt 1K=1024B 1M=1024K 1G=1024M……
設備文件
磁盤設備的設備文件命名:/dev/DEV_FILE
IDE: /dev/hd
SCSI, SATA, SAS, USB: /dev/sd
不同設備:a-z
/dev/sda, /dev/sdb, …
同一設備上的不同分區:1,2, …
/dev/sda1, /dev/sda5
主要分區,擴展分區;/dev/sda1-4
邏輯分區;/dev/sda5-……
[root@station29 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 200M 0 part /boot 主要分區 ├─sda2 8:2 0 20G 0 part /data 主要分區 ├─sda3 8:3 0 10G 0 part /home 主要分區 ├─sda4 8:4 0 1K 0 part 擴展分區不能直接使用,用來包含邏輯分區 ├─sda5 8:5 0 2G 0 part [SWAP] 邏輯分區 └─sda6 8:6 0 167.8G 0 part / 邏輯分區
硬盤存儲術語
head :磁頭 最多256個磁頭
track :磁道 1024個磁道,0-1023,;最多存放63個扇區
cylinder: 柱面 柱面數等磁道數
secotr: 扇區,一個扇區512bytes(字節)
[root@station29 ~]# fdisk -l /dev/sda Disk /dev/sda: 214.7 GB, 214748364800 bytes 255 heads, 63 sectors/track, 26108 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000ee556
[root@localhost ~]# fdisk -l -u=cylinder 以柱面為單位 (CentOS7中) Device Boot Start End Blocks Id System /dev/sda1 * 1 131 1048576 83 Linux /dev/sda2 131 10444 82836480 8e Linux LVM
機械硬盤和固態硬盤
機械硬盤(HDD ):Hard Disk Drive ,即是傳統普通硬盤,主要由:盤片,磁頭,盤片轉軸及控制電機,磁頭控制器,數據轉換器,接口,緩存等幾個部分組成。機械硬盤中所有的盤片都裝在一個旋轉軸上,每張盤片之間是平行的,在每個盤片的存儲面上有一個磁頭,磁頭與盤片之間的距離比頭發絲的直徑還小,所有的磁頭聯在一個磁頭控制器上,由磁頭控制器負責各個磁頭的運動。磁頭可沿盤片的半徑方向運動,加上盤片每分鐘幾千轉的高速旋轉,磁頭就可以定位在盤片的指定位置上進行數據的讀寫操作。數據通過磁頭由電磁流來改變極性方式被電磁流寫到磁盤上,也可以通過相反方式讀取。硬盤為精密設備,進入硬盤的空氣必須過濾
固態硬盤(SSD ):Solid State Drive ,用固態電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH 芯片、DRAM 芯片)組成。固態硬盤在接口的規范和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也與普通硬盤一致
相較于HDD ,SSD 在防震抗摔、傳輸速率、功耗、重量、噪音上有明顯優勢,SSD 傳輸速率性能是HDD 的2倍
相較于SSD ,HDD 在價格、容量、使用壽命上占有絕對優勢
硬盤有價,數據無價,目前SSD 不能完全取代HHD
磁盤分區
為什么分區?
優化I/O 性能
實現磁盤空間配額限制 (控制用戶在磁盤存儲多少數據)
提高修復速度
隔離系統和程序
安裝多個OS(操作系統)
采用不同文件系統
兩種分區方式:MBR ,GPT
MBR: Master Boot Record ,1982年, 使用32位表示扇區數,分區不超過2T
如何分區:按柱面
0 磁道0 扇區:512bytes
446bytes: boot loader(啟動加載器,引導操作系統)
64bytes :分區表
16bytes: 標識一個分區
2bytes: 55AA
4個主分區;3 主分區+1 擴展(N 個邏輯分區)
[root@localhost ~]# echo '- - -' >/sys/class/scsi_host/host2/scan (掃描磁盤)
虛擬機中添加虛擬磁盤后使用,生產中自動識別
例:破壞分區表前512字節后恢復 [root@station29 ~]# hexdump -C /dev/sda -n 512 (查看前512字節) 00000000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.H..............| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02 |.........|...t..| 00000040 80 00 00 80 72 62 00 00 00 08 fa 90 90 f6 c2 80 |....rb..........| ...... [root@station29 ~]# dd if=/dev/sda of=mbr bs=1 count=512 將/dev/sda前512字節讀取到mbr中 512+0 records in 512+0 records out 512 bytes (512 B) copied, 0.00173963 s, 294 kB/s [root@station29 ~]# hexdump -C mbr 00000000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.H..............| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02 |.........|...t..| 00000040 80 00 00 80 72 62 00 00 00 08 fa 90 90 f6 c2 80 |....rb..........| ...... [root@station29 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512 破壞/dev/sda前512字節,從零文件輸出內容到/dev/sda前512字節 512+0 records in 512+0 records out 512 bytes (512 B) copied, 0.00310584 s, 165 kB/s [root@station29 ~]# hexdump -C /dev/sda -n 512 查看/dev/sda前512字節 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 已經歸0 [root@station29 ~]# dd if=mbr of=/dev/sda 將mbr中的內容讀取到/dev/sda中 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.000188347 s, 2.7 MB/s [root@station29 ~]# hexdump -C /dev/sda -n 512 00000000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.H..............| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u......u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02 |.........|...t..| 00000040 80 00 00 80 72 62 00 00 00 08 fa 90 90 f6 c2 80 |....rb.........| 恢復成功
MBR分區結構
GPT 分區
GPT:GUID (Globals Unique Identifiers) ) partitiontable 支持128個 個 分區,使用64 位,支持8Z( (512Byte/block )64Z ( ( 4096Byte/block) )
使用128 位UUID(Universally Unique Identifier) 表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC 校驗位
UEFI ( 統一擴展固件接口) 硬件支持GPT ,使操作系統啟動
GPT 分區結構
EFI部分又可以分為4個區域:EFI信息區(GPT頭)、分區表、GPT分區、備份區域
[root@station29 ~]# blkid (查看UUID) /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4" /dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4" /dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4" /dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4" /dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap" /dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4" /dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc4: UUID="5f4df3af-f8a8-42cb-a391-79974b5c1aa2" TYPE="ext4" [root@station29 ~]# uuidgen (生成新的UUID) afd2aefe-f519-4d78-b04d-7728863c1939 [root@station29 ~]# uuidgen 25aabc53-4031-4272-a54f-7f4a9b0f088e [root@station29 ~]# uuidgen 36c2795d-7c32-4be2-b241-9b15113da1bc
CentOS中查看分區結構是MBR分區還是GPT 分區
[root@localhost ~]# fdisk -l Disk /dev/sda: 85.9 GB, 85899345920 bytes, 167772160 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos (dos對應MBR gpt對應GPT) Disk identifier: 0x0004630b
管理分區
列出塊設備
lsblk (查看內存中的分區表)
ls /dev/sd* (查看內存中有幾個分區)
cat /proc/partitions (查看內存中有幾個分區)
fdisk -l (查看磁盤上的分區表)
創建分區使用:
fdisk 創建MBR 分區
gdisk 創建GPT 分區
fdisk /dev/sdb
gfisk /dev/sdb 類fdisk 的GPT 分區工具
# fdisk -l [-u] [device…]
子命令:
p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
w 保存并退出
q 不保存并退出
parted 高級分區操作(創建、復制、調整大小等等)
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
創建MBR 分區
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 79G 0 part ├─cl-root 253:0 0 50G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 27G 0 lvm /home sdb 8:16 0 30G 0 disk ├─sdb1 8:17 0 1G 0 part └─sdb2 8:18 0 2G 0 part sdc 8:32 0 20G 0 disk sr0 11:0 1 7.7G 0 rom [root@localhost ~]# dd if=/dev/zero of=/dev/sdb bs=1 count=66 skip=446 seek=446 66+0 records in 66+0 records out 66 bytes (66 B) copied, 0.0407596 s, 1.6 kB/s [root@localhost ~]# hexdump -C /dev/sdb -n 512 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 af e8 a9 f3 00 00 00 00 |................| 000001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 [root@localhost ~]# fdisk -l /dev/sdb Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 79G 0 part ├─cl-root 253:0 0 50G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 27G 0 lvm /home sdb 8:16 0 30G 0 disk sdc 8:32 0 20G 0 disk sr0 11:0 1 7.7G 0 rom [root@localhost ~]# parted /dev/sdb mklabel gpt Information: You may need to update /etc/fstab. [root@localhost ~]# fdisk -l /dev/sdb WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt # Start End Size Type Name [root@localhost ~]# parted /dev/sdb mkpart primary 1 1000 Information: You may need to update /etc/fstab. [root@localhost ~]# fdisk -l /dev/sdb WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/sdb: 32.2 GB, 32212254720 bytes, 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: gpt # Start End Size Type Name 1 2048 1953791 953M Microsoft basic primary [root@localhost ~]# parted /dev/sdb mkpart primary 1001 3000 Information: You may need to update /etc/fstab. [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 79G 0 part ├─cl-root 253:0 0 50G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 27G 0 lvm /home sdb 8:16 0 30G 0 disk ├─sdb1 8:17 0 953M 0 part └─sdb2 8:18 0 1.9G 0 part sdc 8:32 0 20G 0 disk sr0 11:0 1 7.7G 0 rom [root@localhost ~]# parted /dev/sdb print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 32.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1000MB 999MB ext4 primary 2 1001MB 3000MB 1999MB primary [root@localhost ~]# parted /dev/sdb rm 1 (刪除分區) Information: You may need to update /etc/fstab. [root@localhost ~]# parted /dev/sdb print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 32.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 2 1001MB 3000MB 1999MB primary [root@localhost ~]# parted /dev/sdb rm 2 Information: You may need to update /etc/fstab. [root@localhost ~]# parted /dev/sdb print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 32.2GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 刪除分區后,分區表還在
創建GPT 分區
[root@localhost ~]# gdisk /dev/sdb GPT fdisk (gdisk) version 0.8.6 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): ? b back up GPT data to a file c change a partition's name d delete a partition i show detailed information on a partition l list known partition types n add a new partition o create a new empty GUID partition table (GPT) p print the partition table q quit without saving changes r recovery and transformation options (experts only) s sort partitions t change a partition's type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this menu Command (? for help): p Disk /dev/sdb: 62914560 sectors, 30.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 0C46C34F-DB4A-4E3A-8D8B-EE2D49F2027A Partition table holds up to 128 entries First usable sector is 34, last usable sector is 62914526 Partitions will be aligned on 2048-sector boundaries Total free space is 62914493 sectors (30.0 GiB) Number Start (sector) End (sector) Size Code Name Command (? for help): n Partition number (1-128, default 1): 100 First sector (34-62914526, default = 2048) or {+-}size{KMGTP}: Last sector (2048-62914526, default = 62914526) or {+-}size{KMGTP}: +1G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): p Disk /dev/sdb: 62914560 sectors, 30.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 0C46C34F-DB4A-4E3A-8D8B-EE2D49F2027A Partition table holds up to 128 entries First usable sector is 34, last usable sector is 62914526 Partitions will be aligned on 2048-sector boundaries Total free space is 60817341 sectors (29.0 GiB) Number Start (sector) End (sector) Size Code Name 100 2048 2099199 1024.0 MiB 8300 Linux filesystem Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdb. The operation has completed successfully. [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 79G 0 part ├─cl-root 253:0 0 50G 0 lvm / ├─cl-swap 253:1 0 2G 0 lvm [SWAP] └─cl-home 253:2 0 27G 0 lvm /home sdb 8:16 0 30G 0 disk └─sdb100 259:0 0 1G 0 part sdc 8:32 0 20G 0 disk sr0 11:0 1 7.7G 0 rom
GPT分區和MBR分區不能轉換
擴展分區如果被刪除,所有邏輯分區都被刪除
partprobe-重新設置內存中的內核分區表版本
同步分區表
查看內核是否已經識別新的分區:
cat /proc/partations
centos6 通知內核重新讀取 硬盤分區表
新增分區用
partx -a /dev/DEVICE (CentOS6中使用)
kpartx -a /dev/DEVICE -f: force
刪除分區用
partx -d –nr M-N /dev/DEVICE (M-N #-#指定一個范圍,單獨數字也可)
CentOS 5 與7:
使用partprobe
partprobe [/dev/DEVICE]
文件系統
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。
支持的文件系統:/lib/modules/`uname –r`/kernel/fs
[root@localhost ~]# cd /lib/modules/3.10.0-514.el7.x86_64/ [root@localhost 3.10.0-514.el7.x86_64]# cd kernel/fs [root@localhost fs]# ls binfmt_misc.ko ceph dlm fat gfs2 lockd nfs_common overlayfs udf btrfs cifs exofs fscache isofs mbcache.ko nfsd pstore xfs cachefiles cramfs ext4 fuse jbd2 nfs nls squashfs
文件系統類型
Linux 文件系統:ext2(Extended file system)無日志功能, ext3,ext4, xfs (SGI ), btrfs (Oracle ), reiserfs, jfs(AIX), swap
光盤:iso9660
Windows :fat32, ntfs
Unix: FFS (fast ), UFS (unix ), JFS2
網絡文件系統:NFS, CIFS
集群文件系統:GFS2, OCFS2 (oracle)
分布式文件系統: fastdfs,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
VFS
創建文件系統
mkfs 命令:
(1) # mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) # mkfs -t FS_TYPE /dev/DEVICE
-L ‘LABEL’: 設定卷標
例題: [root@station29 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 30G 0 disk sda 8:0 0 200G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 20G 0 part /data ├─sda3 8:3 0 10G 0 part /home ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 2G 0 part [SWAP] └─sda6 8:6 0 167.8G 0 part / sdc 8:32 0 20G 0 disk sr0 11:0 1 3.7G 0 rom [root@station29 ~]# cat <<eof | fdisk /dev/sdc > n > p > 1 > > +1G > w > eof [root@station29 ~]# cat <<eof | fdisk /dev/sdc n p 2 +2G w eof [root@station29 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 30G 0 disk sda 8:0 0 200G 0 disk ├─sda1 8:1 0 200M 0 part /boot ├─sda2 8:2 0 20G 0 part /data ├─sda3 8:3 0 10G 0 part /home ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 2G 0 part [SWAP] └─sda6 8:6 0 167.8G 0 part / sdc 8:32 0 20G 0 disk ├─sdc1 8:33 0 1G 0 part └─sdc2 8:34 0 2G 0 part sr0 11:0 1 3.7G 0 rom [root@station29 ~]# mkfs.ext4 /dev/sdc1 (在/dev/sdc創建ext4文件系統) mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 66384 inodes, 265064 blocks 13253 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=272629760 9 block groups 32768 blocks per group, 32768 fragments per group 7376 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@station29 ~]# mkfs.vfat /dev/sdc2 (在/dev/sdc創建vfat文件系統) mkfs.vfat 3.0.9 (31 Jan 2010) [root@station29 ~]# blkid /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4" /dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4" /dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4" /dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4" /dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap" /dev/sdc1: UUID="2c31cbc0-4925-427a-99e2-071e2e0d9b22" TYPE="ext4" /dev/sdc2: UUID="DF61-B770" TYPE="vfat"
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:關閉指定特性
[root@station29 ~]# mke2fs /dev/sdc2 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131648 inodes, 526128 blocks 26306 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=541065216 17 block groups 32768 blocks per group, 32768 fragments per group 7744 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@station29 ~]# blkid /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4" /dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4" /dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4" /dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4" /dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap" /dev/sdc1: UUID="2c31cbc0-4925-427a-99e2-071e2e0d9b22" TYPE="ext4" /dev/sdc2: UUID="56621a76-a419-44f8-8f28-df988b3f196d" TYPE="ext2" [root@station29 ~]# tune2fs -l /dev/sdc1 (查看ext文件系統特性) tune2fs 1.41.12 (17-May-2010) Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: 868e4945-13c6-41c9-8b4b-62e6180e3838 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: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 66384 Block count: 265064 Reserved block count: 13253 Free blocks: 252369 Free inodes: 66373 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 64 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 7376 Inode blocks per group: 461 Flex block group size: 16 Filesystem created: Mon Apr 24 12:34:56 2017 Last mount time: n/a Last write time: Mon Apr 24 12:34:56 2017 Mount count: 0 Maximum mount count: 33 Last checked: Mon Apr 24 12:34:56 2017 Check interval: 15552000 (6 months) Next check after: Sat Oct 21 12:34:56 2017 Lifetime writes: 49 MB 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 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 071a5b59-49b4-4e2d-9ca5-8524a1382359 Journal backup: inode blocks [root@station29 ~]# mke2fs -j /dev/sdc2 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131648 inodes, 526128 blocks 26306 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=541065216 17 block groups 32768 blocks per group, 32768 fragments per group 7744 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. /dev/sdc2: UUID="56621a76-a419-44f8-8f28-df988b3f196d" TYPE="ext2" mke2fs -j /dev/sdc2 (將/sdc2的ext2文件系統轉為ext3文件系統) /dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
例:指定塊大小 (塊大小為扇區的整數倍 單位為1024 2048 4096) [root@station29 ~]# mkfs.ext4 /dev/sdc4 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 28224 inodes, 112452 blocks 5622 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67371008 14 block groups 8192 blocks per group, 8192 fragments per group 2016 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@station29 ~]# mkfs.ext4 -b 4096 /dev/sdc4 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 28128 inodes, 28113 blocks 1405 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=29360128 1 block group 32768 blocks per group, 32768 fragments per group 28128 inodes per group Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@station29 ~]# mkfs.ext4 -b 4000 /dev/sdc4 (將塊大小設置為4000) mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=2048 (log=1) “超出塊大小”操作失敗 [root@station29 ~]# mkfs.ext4 -b 5000 /dev/sdc4 Warning: blocksize 5000 not usable on most systems. mke2fs 1.41.12 (17-May-2010) mkfs.ext4: 5000-byte blocks too big for system (max 4096) “5000字節塊的系統太大(最大4096)” Proceed anyway? (y,n) y Warning: 5000-byte blocks too big for system (max 4096), forced to continue Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 塊大小最大值為4096,設置完塊大小后不能更改,除非格式化后重新指定 [root@station29 ~]# tune2fs -l /dev/sdc4 tune2fs 1.41.12 (17-May-2010) Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: 5f4df3af-f8a8-42cb-a391-79974b5c1aa2 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 28224 inode數量 Block count: 112452 塊數量 [root@station29 ~]# mkfs.ext4 -b 4096 -i 10240 /dev/sdc4 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) root@station29 ~]# tune2fs -l /dev/sdc4 tune2fs 1.41.12 (17-May-2010) Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: 0b95467a-fc7d-49ba-9297-63c455bc8126 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: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 11264 Block count: 28113
文件系統標簽
指向設備的另一種方法,與設備無關
blkid :塊設備屬性信息查看
blkid [OPTION]… [DEVICE]
-U UUID: 根據指定的UUID 來查找對應的設備
[root@station29 ~]# blkid /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4" /dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4" /dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4" /dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4" /dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap" /dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4" /dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc4: UUID="0b95467a-fc7d-49ba-9297-63c455bc8126" TYPE="ext4" [root@station29 ~]# blkid -U 1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6 /dev/sda6 [root@station29 ~]# blkid /dev/sda6 /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
-L LABEL :根據指定的LABEL 來查找對應的設備
e2label :管理ext 系列文件系統的LABEL
# e2label DEVICE [LABEL]
findfs :查找分區
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
[root@station29 ~]# findfs UUID="7a8216c5-6781-4494-b2da-fda672f117ad" /dev/sda5
tune2fs
tune2fs:重新設定ext 系列文件系統可調整參數的值
-l :查看指定文件系統超級塊信息;super block
-L ‘LABEL’ :修改卷標 (一般情況下,掛載的文件夾作為卷標,推薦UUID作為卷標)
[root@station29 ~]# mkfs.ext4 /dev/sdc4 -L /mnt/sdc4 mke2fs 1.41.12 (17-May-2010) Filesystem label=/mnt/sdc4 OS type: Linux Block size=1024 (log=0) [root@station29 ~]# blkid /dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4" /dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc4:UUID="acc7aca0-4883-4885-8159-20d533aaa661"TYPE="ext4"LABEL="/mnt/sdc4"
-m # :修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用, –O ^has_journal
-o: 調整文件系統的默認 掛載選項,–o ^acl
-U UUID: 修改UUID號
[root@station29 ~]# blkid /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4" /dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4" /dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4" /dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4" /dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap" /dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4" /dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc4:UUID="acc7aca0-4883-4885-8159-20d533aaa661"TYPE="ext4"LABEL="/mnt/sdc4" [root@station29 ~]# uuidgen 生成一個新的UUID f90b876d-8226-4cb2-9a58-81570578846d [root@station29 ~]# tune2fs -U f90b876d-8226-4cb2-9a58-81570578846d /dev/sdc4 tune2fs 1.41.12 (17-May-2010) [root@station29 ~]# blkid /dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4" /dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4" /dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4" /dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4" /dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap" /dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4" /dev/sdc2:UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3" /dev/sdc4:UUID="f90b876d-8226-4cb2-9a58-81570578846d"TYPE="ext4"LABEL="/mnt/sdc4"
dumpe2fs:
-h :查看超級塊信息,不顯示分組信息
文件系統檢測和修復
常發生于死機或者非正常關機之后
掛載為文件系統標記為“no clean”
注意:一定不要在掛載狀態下修復
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-p: 自動修復錯誤
-r: 交互式修復錯誤
FS_TYPE 一定要與分區上已經文件類型相同
e2fsck :ext 系列文件專用的檢測修復工具
-y :自動回答為yes
-f :強制修復
原創文章,作者:Linux.rookie,如若轉載,請注明出處:http://www.www58058.com/74457