回顾:
磁盘,磁盘分区,文件系统
现在的磁盘有两类:机械硬盘和固态硬盘
为了使机械硬盘上流传下来的概念,和组织方式依然可用,固态硬盘也模拟了类似于机 械硬盘上的很多特性,想MBR之类的哪些东西,依然模拟扇区和那些机制,只不过是 固态硬盘是电器设备工作,机械硬盘是机械方式工作而已。
无论是那种格式的硬盘在cent0S6,7只要是磁盘设备而且能够驱动的话统统识别为: /dev/sd[a-z]#
管理分区:fdisk,parted,sfdisk
创建文件系统:
如果要想在创建的分区上实现按名存取文件,就需要再分区上创建文件系统,一个分区一旦格式化以后,就称为一个文件系统,这一点一定要记住,就算两个分区都被格式化为ext4文件系统,那么也要称为两个文件系统。
Linux文件系统类型:ext2,ext3,ext4,xfs,reiserfs,iso9660,swap
文件系统的组织结构中的术语:
blockgroups:块组
block:磁盘块
inodetable:索引列表
inode
bitmap:位图
block bitmap:那些磁盘块未被使用
superblock:超级块
gdt:块组描述符
我们此前在CentOS7上演示过了创建文件系统,下面我们演示在centos6上如何创建文件系统
[root@centos6~]# lsb_release //查看当前系统上的LSB系统的发行版本
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
[root@centos6 ~]# cat /etc/issue //查看当前系统的发行版本
CentOS release 6.8 (Final) //6.8的最终版
Kernel \r on an \m
[root@centos6 ~]# uname -r //查看内核的版本
2.6.32-642.el6.x86_64
[root@centos6 ~]#
首先我们在虚拟机上添加一块硬盘,容量大小为20G,然后重启,让系统重新加载这块新的硬盘
[root@centos6 ~]# fdisk -l //发现新添加的硬盘被系统识别
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x000066a0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinderboundary.
/dev/sda2 26 6400 51200000 83 Linux
/dev/sda3 6400 8950 20480000 83 Linux
/dev/sda4 8950 26109 137829376 5 Extended
/dev/sda5 8950 9460 4096000 82 Linux swap / Solaris
Disk/dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x00000000
[root@centos6 ~]#
对新添加的硬盘进行分区
[root@centos6 ~]# fdisk /dev/sdb
Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with diskidentifier 0x49937535.
Changes will remain in memory only, untilyou decide to write them.
After that, of course, the previous contentwon‘t be recoverable.
Warning: invalid flag 0x0000 of partitiontable 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated.It‘s strongly recommended to
switch off the mode (command ‘c‘) and change display units to
sectors (command ‘u‘).
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
Command (m for help): n //new一个新的分区
Command action
e extended //表示扩展分区
p primary partition (1-4) //表示创建主分区
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): //表示从哪个柱面开始
Using default value 1
Last cylinder, +cylinders or +size{K,M,G}(1-2610, default 2610): +5G
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
Command (m for help):
上面的操作我们还可以接着创建3个主分区,因为我们知道在磁盘分区上,我们的主分区和扩展分区的编号一共不能超过4,包括4,因为一个磁盘最多只能有4个主分区,当我们已经创建了3个主分区以后,我们接下来如果再创建分区,如果再创建主分区,那么我们就需要将剩余的空间全部给这个主分区,因为剩下的空间不能用了。因为我们说了,一个磁盘最多只能拥有4个主分区,如果我们不希望这个磁盘上只能创建4个主分区,我们要想多创建几个分区,那么我们就要创建一个扩展分区,创建扩展分区时,我们可以给他指定的空间,也可以将剩余的空间全部给扩展分区。
接上面的进行演示:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
1 //不能执行操作,这说明这里需要我们填写e或p
Invalid partition number for type `1‘
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (655-2610, default 655):
Using default value 655
Last cylinder, +cylinders or +size{K,M,G}(655-2610, default 2610): +2G
Command (m for help): P
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 916 2104515 83 Linux
Command (m for help): N //new创建一个新的分区时,大小写都可以
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1 //不能操作,说明扩展分区与主分区一共是4个,所以标号 1,2前面都用了,所以这里不能再使用1了。
Partition 1 is already defined. Delete it before re-adding it.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 3
First cylinder (917-2610, default 917):
Using default value 917
Last cylinder, +cylinders or +size{K,M,G}(917-2610, default 2610): //这里默认将剩余的空间 全部分给逻辑分区
Using default value 2610
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
DeviceBoot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 916 2104515 83 Linux
/dev/sdb3 917 2610 13607055 5 Extended
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos6 ~]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x000066a0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinderboundary.
/dev/sda2 26 6400 51200000 83 Linux
/dev/sda3 6400 8950 20480000 83 Linux
/dev/sda4 8950 26109 137829376 5 Extended
/dev/sda5 8950 9460 4096000 82 Linux swap / Solaris
Disk/dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 916 2104515 83 Linux
/dev/sdb3 917 2610 13607055 5 Extended
[root@centos6 ~]# cat /proc/partitions //查看内核是否识别了新建的分区。
major minor #blocks name
8 0 209715200 sda
8 1 204800 sda1
8 2 51200000 sda2
8 3 20480000 sda3
8 4 1 sda4
8 5 4096000 sda5
8 16 20971520 sdb
8 17 5253223 sdb1
8 18 2104515 sdb2
8 19 1 sdb3
[root@centos6 ~]#
如果这个创建分区是在一个已经创建分区,并且挂载其中某个分区的磁盘设备文件上再继续进行分区,那么就有可能使得内核无法识别新建分区,那么我们需要执行命令,让centos6重新读取磁盘分区表。
centos6:partx -a /dev/sdb
centos7:kpartx -af /dev/sdb
如果我们想创建一个SWAP类型的分区,那么就用了更改分区类型
接上面的操作继续演示:
[root@centos6 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated.It‘s strongly recommended to
switch off the mode (command ‘c‘) and change display units to
sectors (command ‘u‘).
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 916 2104515 83 Linux
/dev/sdb3 917 2610 13607055 5 Extended
Command (m for help): t //更改分区的类型用子命令t
Partition number (1-5): 2 //需要更改类型的分区编号
Hex code (type L to list codes): l //列出已知的分区类型对应的编号
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIXroot 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIXusr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16<32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FSdata
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS /.
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIXbootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95Ext‘d (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD orSys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS/ HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 NovellNetware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): 82 //输入目标类型的编号
Changed system type of partition 2 to 82(Linux swap / Solaris)
Command (m for help): p //查看一下是否更改完成
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 916 2104515 82 Linux swap/ Solaris
/dev/sdb3 917 2610 13607055 5 Extended
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos6 ~]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x000066a0
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinderboundary.
/dev/sda2 26 6400 51200000 83 Linux
/dev/sda3 6400 8950 20480000 83 Linux
/dev/sda4 8950 26109 137829376 5 Extended
/dev/sda5 8950 9460 4096000 82 Linux swap / Solaris
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0x49937535
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 83 Linux
/dev/sdb2 655 916 2104515 82 Linux swap / Solaris
/dev/sdb3 917 2610 13607055 5 Extended
[root@centos6 ~]# cat /proc/partitions
major minor #blocks name
8 0 209715200 sda
8 1 204800 sda1
8 2 51200000 sda2
8 3 20480000 sda3
8 4 1 sda4
8 5 4096000 sda5
8 16 20971520 sdb
8 17 5253223 sdb1
8 18 2104515 sdb2
8 19 1 sdb3
[root@centos6 ~]#
磁盘和文件系统管理:
文件系统管理工具:
(1)创建文件系统工具
mkfs
mkfs.etx2,mkfs.etx3,mkfs.etx4,mkfs.xfs,mkfs.vfat,......
(2)检测及修复文件系统的工具
fsck
fsck.ext2,fsck.ext3,.........
(3)查看其属性的工具
dumpe2fs,tune2fs
(4)调整文件系统特性:
tune2fs
我们一定要记得,每一种文件系统,都有自己专用的,在用户空间中的工具。那么文件系统在哪呢?
内核级文件系统的组成部分:
(1)文件系统驱动;由内核提供
(2)文件系统管理工具;由用户空间的应用程序提供
详解:内核级文件系统组成部分:
内核级文件系统的组成部分:通常由两部分组成,
第一部分:
文件系统驱动:由内核驱动并识别的
(内核级文件系统的组成部分,被装载或者我们能够识别磁盘上文件系统内部的内容,是在内核中通过内核中的文件系统驱动实现的。很多时候一个程序让一个设备或者让一个机制后者让一个功能工作的更加流畅的代码都叫做驱动。对于linux而言,工作在内核中的这种文件系统,尤其是让某一个磁盘分区上文件系统工作起来了的那个内核模块,我们通常称他们为文件系统驱动。一般而言,要想ext4文件系统,能在我们的文件系统上工作的话,我们必须装载这个模块,如果ext4编译成了模块的话,比如说我们使用lsmod命令,lsmod命令的意思是:程序显示在Linux内核模块的状态
[root@centos6 ~]# lsmod //查看当前内核已装载的模块,我们的内核要识别一个 文件系统,那么我们的内核必须先装载了这么个模块,对于内核来讲,我们可以直接装载这个模块,也可以进行直接编译,是她成为内核的一部分,如果是内核的一部分,那么我们使用lsmod命令,是看不到这个模块的名字的。也就是说即使看不到名字,但是内核能够正常工作,这也说明内核加载了相关的驱动程序。
Module Size Used by
nls_utf8 1455 1
rfcomm 71079 4
sco 17493 2
bridge 85674 0
bnep 16370 2
l2cap 54306 16 rfcomm,bnep
autofs4 27000 3
8021q 20362 0
garp 7152 1 8021q
stp 2218 2 bridge,garp
llc 5418 3 bridge,garp,stp
ipt_REJECT 2351 2
nf_conntrack_ipv4 9186 2
nf_defrag_ipv4 1483 1 nf_conntrack_ipv4
iptable_filter 2793 1
ip_tables 17831 1 iptable_filter
ip6t_REJECT 4340 2
nf_conntrack_ipv6 7985 3
nf_defrag_ipv6 26468 1 nf_conntrack_ipv6
xt_state 1492 5
nf_conntrack 79537 3nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
ip6table_filter 2889 1
ip6_tables 18732 1 ip6table_filter
ipv6 336282 284bridge,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
fuse 79892 4
vmhgfs 50307 0
vsock 46582 4
uinput 8120 0
microcode 112205 0
btusb 16915 2
bluetooth 97895 9 rfcomm,sco,bnep,l2cap,btusb
rfkill 19255 3 bluetooth
snd_seq_midi 6423 0
snd_seq_midi_event 7205 1 snd_seq_midi
vmware_balloon 7199 0
snd_ens1371 21523 2
snd_rawmidi 24633 2 snd_seq_midi,snd_ens1371
snd_ac97_codec 124967 1 snd_ens1371
ac97_bus 1452 1 snd_ac97_codec
snd_seq 60769 2 snd_seq_midi,snd_seq_midi_event
snd_seq_device 7277 3 snd_seq_midi,snd_rawmidi,snd_seq
snd_pcm 93697 2 snd_ens1371,snd_ac97_codec
snd_timer 22747 2 snd_seq,snd_pcm
snd 73783 11 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq,snd_seq_device,snd_pcm,snd_timer
soundcore 7958 1 snd
snd_page_alloc 8856 1 snd_pcm
e1000 134863 0
sg 29318 0
vmci 75097 1 vsock
i2c_piix4 11232 0
shpchp 29130 0
ext4 379655 3
jbd2 93252 1 ext4
mbcache 8193 1 ext4
sd_mod 37158 5
crc_t10dif 1209 1 sd_mod
sr_mod 15049 1
cdrom 39085 1 sr_mod
mptspi 16411 4
mptscsih 36638 1 mptspi
mptbase 93615 2 mptspi,mptscsih
scsi_transport_spi 25447 1 mptspi
pata_acpi 3701 0
ata_generic 3837 0
ata_piix 24409 1
vmwgfx 226420 2
ttm 89408 1 vmwgfx
drm_kms_helper 127219 1 vmwgfx
drm 362893 5 vmwgfx,ttm,drm_kms_helper
i2c_core 29132 3 i2c_piix4,drm_kms_helper,drm
dm_mirror 14864 0
dm_region_hash 12085 1 dm_mirror
dm_log 9930 2 dm_mirror,dm_region_hash
dm_mod 102467 2 dm_mirror,dm_log
[root@centos6 ~]#)
第二部分:文件系统管理工具:
通常由用户空间的应用程序提供
要想管理由内核提供的驱动的某中文件系统,那么首先有个前提是我们有可能事先手动安装这个用户空间的应用程序,因为有可能我们的系统默认可能并没有安装
创建文件系统的工具,对于不同的文件系统来说,其创建的工具是不一样的。
在centos6系统上,我们在命令行输出:“mkfs.”然后连敲两次Tab键命令,会显示很多工具,
[root@centos6 ~]# mkfs.
mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat
mkfs.ext2 mkfs.ext4 mkfs.msdos
[root@centos6 ~]# mkfs.
在centos7上我们输入“mkfs.”然后连敲两次Tab键,显示如下:可知centos7比centos6系统多了两个文件系统:btrfs和xfs,而xfs是centos7上默认的文件系统。
[root@centos7 ~]# mkfs.
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
[root@centos7 ~]# mkfs.
那我们怎样知道目前已有分区他的文件系统类型是什么?
我们用命令blkid
[root@centos6 ~]# blkid /dev/sda3
/dev/sda3: UUID="32376552-a128-416d-be08-0aa6acab4661"TYPE="ext4"
[root@centos6 ~]# blkid /dev/sda5
/dev/sda5:UUID="091e5b14-8201-4ffc-9278-41b7acae00d9" TYPE="swap"
[root@centos6 ~]#
创建文件系统的工具:
mkfs
创建文件系统的工具,主要命令是:“mkfs”,但是我们现在主要使用的是centos系列的系统,尽管说centos7默认支持的文件系统的是xfs了,但是ext4仍然在使用,所以我们这里先说一下,ext系列文件系统的管理工具:
ext系列文件系统的管理工具:(这里是经典的工具)
mkfs.ext2(无日志功能),mkfs.ext3,mkfs.ext4
ext4文件系统向后兼容前面的两种文件系统。所以如果可以的话我们建议使用ext4文件系统。
创建上面的文件系统非常简单,直接“mkfs.ext#”后面跟上分区即可
我们再次说明,我们格式化分区,会破坏所有的原有数据,请慎重操作。
我们创建文件系统类型的命令:mkfs后面的点,可以用选项“-t”来表示,这样更好理解
mkfs -t ext2=mkfs.ext2
ext系列文件系统专用管理工具:mke2fs
mke2fs [OPTIONS] device
-t {ext2|ext3|ext4}:指明要创建的文件系统类型
mkfs.ext4=mkfs -t ext4=mke2fs -t ext4
-b {1024|2048|4096}:指明文件系统的块大小;最大不能超过4K
-L LABEL:指明卷标;
举例:mke2fs -t ext3 -L MYDATA -b 1024 /dev/sdb1
-j:创建有日志功能的文件系统ext3;
(这是ext2文件系统用来创建ext3文件系统的;
mke2fs -j=mke2fs -t ext3=mkfs -t ext3=mkfs.ext3)
-i#:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个inode;
-N#:直接指明要给此文件系统创建的inode的数量;
-O[^]FEATURE:以指定的特性创建目标文件系统,前面有“^”表示取消这个功能, 没有“^”表示启用这个功能;
举例:mke2fs -O has_joural /dev/sdb1 //开启日志功能
mke2fs -O ^has_joural /dev/sdb1 //关闭日志功能
-m#:指定预留的空间百分比,默认是“%5”不需要加符号,也不需要进行换算, 直接加数字即可
e2label命令:卷标的查看与设定
(e2label:ext系列文件系统专用的卷标命令)
查看:e2label device
设定:e2label device LABEL
tune2fs命令:查看或修改ext系列文件系统的某些属性
(注意:只能查看某些属性)
用法:adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems
注意:块创建大小后不可修改;
可修改的项:卷标,文件系统类型,预留空间
tune2fs [OPTIONS] device
-l:查看超级块的内容;
-j:修改指定的文件系统的属性;
-j:ext2---->ext3;
-L LABEL:设定卷标或修改卷标;
-m#:不用格式化磁盘,修改预留空间的百分比;默认是%5
举例:tune2fs -m 2 /dev/sdb1 :将预留空间调节成%2
-O [^] FEATHER:开启或关闭某种特性;
举例:tune2fs -O has_journal /dev/sdb1
tune2fs -O ^has_journal /dev/sdb1
-o [^]mount_options:开启或关闭某种默认挂载选项
常用的设置就是:acl 或 ^acl //acl是访问控制列表
举例:tune2fs -o acl /dev/sdb1
(如果我们创建了一个新的分区,挂载时没有指明acl,那么这个分区是不支持acl的,也就是setacl或者getacl是不支持的,而操作系统安装时,自动创建的分区是支持acl的,但是我们在后面自己创建的分区并挂载时是不支持acl的,我们需要在挂载时明确指定。如果我们让其默认就支持,那么就需要使用tune2fs命令设定。)
dumpe2fs命令:
显示ext系列文件系统的属性信息
dumpe2fs [-h] device
例:如果不加选项“-h”dumpe2fs /dev/sdb1:会显示整个文件系统的信息, 每个块组的详细信息
(我们如果直接执行:dumpe2fs /dev/sdb1,很有可能我们看不到开头的信息,我们可以加上less,分页显示: dumpe2fs /dev/sdb1 | less )
dumpe2fs -h /dev/sdb1 //仅显示文件系统前面的信息。与tune2fs -l的显示很相似。
用于实现文件系统检测的工具;
因进程意外终止或系统崩溃等原因导致操作系统非正常终止时,可能会造成文件损坏,此时,应该检测并修复文件系统;建议离线进行;(离线就是不挂载)
ext系列文件系统的专用检测工具:
e2fsck:check aLinux ext2/ext3/ext4 file system
e2fsck [OPTIONS] device
-y:对所有问题自动回答会yes;
-f:即使文件系统处于clean状态,也要强制进行检测;
fsck:check andrepair a Linux file system
是通用的文件系统检测工具
-t fstype:指明文件系统类型;
fsck -t ext4=fsck.ext4
-a:无须交互自动修复所有错误;
(-a无须交互式修复,我们一般不建议使用,因为,当我们在写一个2G的文件,我们写到1.9G的时候,突然断电,那么再开机的时候,我们如果使用完全修复,那么其实我们要知道修复其实就是先将原先的文件内容删除,然后再写,所以,这个时候就有点不得当了,所以不是所有时候都是适合进行“-a”修复的。)
-r:交互式修复;
创建:mkfs.xfs
检测:fsck.xfs
blkid命令:
blkid device
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据UUID定位设备
swap文件系统:
Linux上的交换分区必须使用独立的文件系统;也就是独立的磁盘分区
且文件系统的system ID必须为82;
创建swap分区设备有专有的命令:mkswap命令
当我们使用“fdisk -l”命令查看磁盘分区时,如果我们创建的分区后面的system ID是82,那么我们对这个分区进行格式化时,我们只能将其格式化为swap格式的。而如果ID为83,那么我们可以既可以格式化为ext系列的,也可以格式化为ntfs等格式的。
mkswap [OPTIONS] device
-L LABEL:指明卷标
-f:强制
windows无法识别linux的文件系统;因此,存储设备需要在两种系统之间交叉使用时,应该使用windows和linux同时支持的文件系统;fat32(linux上叫vfat);
#mkfs.vfat device
我们创建了分区,也对其进行格式化了,那么我们怎样使用这个空间呢?
解:
我们需要挂载,对于linux而言,他的所有的存储设备要想能够被访问到,必须要关联至当前根文件系统上的某一个位置,但是不能关联至根“/”上,如果要是关联至根上,那么根上原来的文件系统去哪了?
注意:把设备关联至或者挂载哪一个设备上,虽说通过这个目录访问的文件,都是直接指向那个分区的文件,所以说,如果让一个分区关联至根上,那么根上原来的文件就会被隐藏了,那么根下所有自己管理可用的工具就找不到了。
对于内核来讲,内核启动时,首先要找到根,也就意味着根在内核中随时被使用,但是在系统启动之前,根在哪呢?其实根压根就没有这个东西,但是根文件系统有一定的特性,所谓的根文件系统就是指根文件系统拥有很多自己的关键目录,像bin,boot,dev,etc等,所在的路径一个分区只要有这些路径,有工具,在内核启动时,告诉内核去找这样一个分区,那么这个分区就成了根,所以只要有一个分区,即假如说一个磁盘上有4个分区,其中有两个目录都有“根”这样的目录结构,而且都有自己的需要的工具,那么启动时告诉内核识别哪个分区,那么这个分区就代表根分区。
我们要使用新建的文件系统,那么我们就要先创建一个目录,然后将这个文件系统挂载到这个目录下。作为其他分区入口的目录,一定要在前一个文件系统上,这个目录被称为挂载点。而新建的文件系统叫做挂载设备。我们如果把根卸载了,那么我们操作系统就无法使用了,因为没有根,我们的内核启动起来也没什么用。我们理想的挂载就是在根文件系统上找一个目录进行挂载。
文件系统的使用:
首先要“挂载”:mount命令和卸载umount命令
演示:tune2fs -o acl /dev/sdb1
[root@centos6 ~]# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: DONG
Last mounted on: <not available>
Filesystem UUID: 0288c516-c353-4bea-80c6-401655d5f9fd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inodedir_index filetype sparse_super
Filesystem flags: signed_directory_hash
Defaultmount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 328704
Block count: 5253220
Reserved block count: 262661
Free blocks: 5132956
Free inodes: 328693
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 512
Inode blocks per group: 128
Filesystem created: Wed Nov 9 09:18:58 2016
Last mount time: n/a
Last write time: Wed Nov 9 09:46:33 2016
Mount count: 0
Maximum mount count: 36
Last checked: Wed Nov 9 09:18:58 2016
Check interval: 15552000 (6 months)
Next check after: Mon May 8 09:18:58 2017
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: 3dcd0272-7789-4623-a547-f69ee10db38c
Journal backup: inode blocks
[root@centos6~]# tune2fs -o acl /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
[root@centos6 ~]# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: DONG
Last mounted on: <not available>
Filesystem UUID: 0288c516-c353-4bea-80c6-401655d5f9fd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inodedir_index filetype sparse_super
Filesystem flags: signed_directory_hash
Defaultmount options: acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 328704
Block count: 5253220
Reserved block count: 262661
Free blocks: 5132956
Free inodes: 328693
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 512
Inode blocks per group: 128
Filesystem created: Wed Nov 9 09:18:58 2016
Last mount time: n/a
Last write time: Wed Nov 9 10:31:44 2016
Mount count: 0
Maximum mount count: 36
Last checked: Wed Nov 9 09:18:58 2016
Check interval: 15552000 (6 months)
Next check after: Mon May 8 09:18:58 2017
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: 3dcd0272-7789-4623-a547-f69ee10db38c
Journal backup: inode blocks
[root@centos6 ~]#
演示tune2fs -l /dev/sdb1
[root@centos6 ~]# tune2fs -l /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name: DONG //卷标
Last mounted on: <not available> //上一次被挂载的
Filesystem UUID: 0288c516-c353-4bea-80c6-401655d5f9fd
Filesystem magic number: 0xEF53 //魔数,表示文件系统专用的一种表述
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inodedir_index filetype sparse_super //已启用的功能
Filesystem flags: signed_directory_hash
Default mount options: (none) //文件系统默认的挂载选项
Filesystem state: clean //文件系统状态,clean状态是一致状态,表示没有文 件损坏,如果有文件损坏,就叫dirty,不干净状态
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 328704
Block count: 5253220
Reserved block count: 262661 //预留的块数量
Free blocks: 5132956
Free inodes: 328693
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256 //预留给GDT的块数量
Blocks per group: 8192 //每组多少块
Fragments per group: 8192 //每组多少个片段
Inodes per group: 512 //每组有多少个inode
Inode blocks per group: 128 //每一组中有多少个块放inode
Filesystem created: Wed Nov 9 09:18:58 2016
Last mount time: n/a
Last write time: Wed Nov 9 09:46:33 2016
Mount count: 0
Maximum mount count: 36
Last checked: Wed Nov 9 09:18:58 2016
Check interval: 15552000 (6 months)
Next check after: Mon May 8 09:18:58 2017
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: 3dcd0272-7789-4623-a547-f69ee10db38c
Journal backup: inode blocks
[root@centos6 ~]#
e2label举例演示:
[root@centos6~]# e2label /dev/sdb1 //查看卷标
MYDATA
[root@centos6 ~]# e2label /dev/sdb1 DONG //设定卷标
[root@centos6 ~]# e2label /dev/sdb1
DONG
[root@centos6 ~]# blkid /dev/sdb1 //也可以查看卷标
/dev/sdb1: LABEL="DONG"UUID="0288c516-c353-4bea-80c6-401655d5f9fd" SEC_TYPE="ext2"TYPE="ext3"
[root@centos6 ~]#
演示创建文件系统时,指明卷标
[root@centos6 ~]# mke2fs -t ext3 -L MYDATA -b 1024 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystemlabel=MYDATA
OS type: Linux
Blocksize=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
328704 inodes, 5253220 blocks
262661 blocks (5.00%) reserved for thesuper user
First data block=1
Maximum filesystem blocks=72613888
642 block groups
8192 blocks per group, 8192 fragments pergroup
512 inodes per group
Superblock backups stored on blocks:
8193,24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,
1024001,1990657, 2809857, 5120001
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystemaccounting information: done
This filesystem will be automaticallychecked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@centos6 ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="MYDATA"UUID="0288c516-c353-4bea-80c6-401655d5f9fd" SEC_TYPE="ext2"TYPE="ext3"
[root@centos6 ~]#
我们以centos6系统为例:创建文件系统:
[root@centos6~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label= //每一个文件系统都有一个卷标,我们没有指定卷标,所以为空
OS type: Linux //操作系统为linux
Block size=4096 (log=2) //没指定块大小,默认块大小为4K
Fragment size=4096 (log=2) //分块大小为4K
Stride=0 blocks, Stripe width=0 blocks
328656 inodes, 1313305 blocks //一共给这个分区创建了多少个inode,为这个分区创建了 多少个磁盘块
65665 blocks (5.00%) reserved for the superuser //其中有多少块预留下来给超级管理员
First data block=0 //第一个数据块的编号从零开始
Maximum filesystem blocks=1346371584 //最大文件系统块编号
41 block groups //一共有多少个块组
32768 blocks per group, 32768 fragments pergroup //每个组内有多少个块,每一个 group有多少个inode
8016 inodes per group
Superblock backups stored on blocks: //我们的superblock被备份到了哪些块中了,每一 个块的编号
32768,98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done //正在写入inode表:完成 (done表示完成)
Creating journal (32768 blocks): done //创建日志功能完成
Writing superblocks and filesystemaccounting information: done
This filesystem will be automatically checkedevery 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@centos6 ~]#
[root@centos6 ~]# blkid /dev/sdb1 //查看分区的文件系统
/dev/sdb1:UUID="23c40dd1-3a3e-4d70-9772-429ed5c489e0" TYPE="ext4" //每一个设备还 有一个随机的 UUID,表示全局 唯一标识符,后面 是分区文件系统 的类型。
[root@centos6 ~]#
上面的操作将分区创建为ext4类型的文件系统,是有日志功能的,下面我们再将分区格式化为ext2类型的文件系统,那么这时在下面的显示信息中就不会出现“Creating journal (32768 blocks):done //创建日志功能完成”,因为ext2没有日志功能。
[root@centos6 ~]# mkfs.ext2 /dev/sdb1
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
328656 inodes, 1313305 blocks
65665 blocks (5.00%) reserved for the superuser
First data block=0
Maximum filesystem blocks=1346371584
41 block groups
32768 blocks per group, 32768 fragments pergroup
8016 inodes per group
Superblock backups stored on blocks:
32768,98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Writing superblocks and filesystemaccounting information: done
This filesystem will be automaticallychecked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@centos6 ~]#
centos6系统上安装xfs文件系统:
centos6默认是不支持xfs类型的文件系统的。
如果我们想在centos6上使用xfs类型的文件系统,我们需要手动安装xfs相关的rpm包才可以。如果我们想安装的话,我们先配置好yum源。
在这里第一次接触登入FTP服务器的步骤:
在命令行中输入:“wget http://10.1.0.1/centos6.repo”即,“wget http://10.1.0.1/要下载的文件”
我们需要使用yum安装一个xfsr的rpm包,这个包的名字叫“xfsprogs”,我们配置yum源时,配置本地光盘的yum源即可。
[root@centos6yum.repos.d]# vimCentOS-Local.repo
然后我们编辑的本地yum源文件内容为:
[base]
name=local-cdrom-yum
baseurl=file:///media
gpgcheck=0
然后我们只需执行命令:yum install xfsprogs
在centos6系统上安装成功xfs文件系统后,我们执行下面的命令进行验证:
在命令行上敲入“mkfs.”然后两次敲Tab键,如果出现“mkfs.xfs”就表示安装成功。
[root@centos6 yum.repos.d]# mkfs.
mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat
mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.xfs
[root@centos6 yum.repos.d]# lsmod |grep xfs //我们使用lsmod命令查找我们的系统是否 有xfs模块,但是没有找到
[root@centos6 yum.repos.d]# mkfs.xfs /dev/sdb1 //没有找到但是并不影响我们我们的使用, 但是仅仅适应mkfs.fs命令,是不能完成 格式化分区的,他会告诉我们这个分区上 已经有ext4文件系统了,这个操作非常 危险,并告诉我们使用选项“-f”来强制 覆盖原有的文件系统
mkfs.xfs: /dev/sdb1 appears to contain anexisting filesystem (ext4).
mkfs.xfs: Use the -f option to forceoverwrite.
[root@centos6 yum.repos.d]# mkfs.xfs -f /dev/sdb1 //加上选项“-f”后覆盖成功
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=328327 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=1313305,imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560,version=2
= sectsz=512 sunit=0 blks,lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@centos6 yum.repos.d]# bklid /dev/sdb1
-bash: bklid: command not found
[root@centos6 yum.repos.d]# bkild /dev/sdb1
-bash: bkild: command not found
[root@centos6 yum.repos.d]# blkid /dev/sdb1 //使用blkid命令查看分区的文件系统类型
/dev/sdb1:UUID="b8b2eea5-ded1-4182-9a5c-f8be601123ec" TYPE="xfs"
[root@centos6 yum.repos.d]#
本文出自 “11847750” 博客,请务必保留此出处http://11857750.blog.51cto.com/11847750/1875115
原文地址:http://11857750.blog.51cto.com/11847750/1875115