linux 文件i型同 分区,Linux磁盘和文件系统管理(1)_分区 格式化

Linux磁盘管理

硬盘:

机械式硬盘

SSD 固态硬盘

机械式:

track磁道

sector扇区: 最小的纹理存储单位,每个扇区大小为512bytes

cylinder柱面:分区的基本单位;

硬盘第一个扇区 512bytes

MBR:Master Boot Record 硬盘主引导记录

MBR占 446 bytes: bootloader

分区表(pratition table) 占64bytes: filesystem allocation table

分区表中每16bytes 标识一个分区,所以主分区和扩展分区最多可以有4个;

2bytes:55AA 标志位,55AA表示生效,其他表示无效

磁盘接口类型:

IDE(ATA):速度 133MB/s,/dev/hd

SCSI: 速度 640MB/s

SATA:速度6Gbps

SAS:速度 6Gbps

USB:速度 480MB/s

识别硬盘设备:

各种接口的磁盘在linux中的文件命名,在centos6之后都命名为 :/dev/sd*

标记不同的硬盘设备:/dev/sd[a-z]

标记同一设备上的不同分区:/dev/sd[a-z][1-]

1-4:命名主或扩展分区标识

5+:逻辑分区标识

设备文件:特殊文件

设备号:

major,minor

major: 表示设备类型

minor:同一类型下的不同设备

“块”:block,随机设备

“字符”:character,线性设备

GPT:GUIDPartition Table

磁盘管理

在linux系统中增加一块新磁盘,需要

1 对磁盘进行分区

2 对分区进行格式化,创建可用文件系统

3 创建挂载点,并且将其挂载

磁盘与目录的容量

df命令: 列出文件系统的整体磁盘使用情况 report file system disk space usage

语法: df [OPTION]... [FILE]...

选项:

-a:列出所有文件系统

-k或-m:以KB,MB的单位显示文件系统

-h:以易读的GB,MB,KB等格式显示

-i:不用硬盘容量,以inode的数量显示

-T :显示分区文件系统类型

示例:#列出文件系统整体磁盘使用情况

[root@localhost ~]# df

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda3        9947976  551432   8868160   6% /

devtmpfs          493016       0    493016   0% /dev

tmpfs             501580       0    501580   0% /dev/shm

tmpfs             501580    6792    494788   2% /run

tmpfs             501580       0    501580   0% /sys/fs/cgroup

/dev/sda2       20027216 1112520  17874312   6% /usr

/dev/sda1         194235   90696     89203  51% /boot

/dev/sda5        9947976   36976   9382616   1% /home

#显示文件系统各个分区格式

[root@localhost ~]# df -T

Filesystem     Type     1K-blocks    Used Available Use% Mounted on

/dev/sda3      ext4       9947976  551432   8868160   6% /

devtmpfs       devtmpfs    493016       0    493016   0% /dev

tmpfs          tmpfs       501580       0    501580   0% /dev/shm

tmpfs          tmpfs       501580    6792    494788   2% /run

tmpfs          tmpfs       501580       0    501580   0% /sys/fs/cgroup

/dev/sda2      ext4      20027216 1112520  17874312   6% /usr

/dev/sda1      ext4        194235   90696     89203  51% /boot

/dev/sda5      ext4       9947976   36976   9382616   1% /home

#

[root@localhost ~]# df -Th

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/sda3      ext4      9.5G  539M  8.5G   6% /

devtmpfs       devtmpfs  482M     0  482M   0% /dev

tmpfs          tmpfs     490M     0  490M   0% /dev/shm

tmpfs          tmpfs     490M  6.7M  484M   2% /run

tmpfs          tmpfs     490M     0  490M   0% /sys/fs/cgroup

/dev/sda2      ext4       20G  1.1G   18G   6% /usr

/dev/sda1      ext4      190M   89M   88M  51% /boot

/dev/sda5      ext4      9.5G   37M  9.0G   1% /home

Filesystem:表示各个分区,列出设备名

Type:文件系统格式

1k-blocks:1k表示下面数字的单位

Used:已用空间

Avail:可用空间

Use%:磁盘使用率

Mounted on:磁盘挂载点

du命令:统计目录所占容量

du [OPTION]... [FILE]...

参数:

-a:列出所有文件与目录容量

-h:以易读的容量单位KB,MB,GB显示

-s:列出总量

-S:不包含子目录下的总计

示例:# 后面不加目录或文件名 默认分析当前所在目录

[root@localhost test]# du

4    ./testbash

28    .

[root@localhost test]# du -a

16    ./functions

4    ./testbash

4    ./test_vim

28    .

[root@localhost test]# du -h

4.0K    ./testbash

28K    .

[root@localhost test]# du -sh /etc/

22M    /etc/

[root@localhost test]# du -S

4    ./testbash

24    .

分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;

分区工具:

fdisk,parted, sfdisk

fdisk工具的使用:

最多支持在一块硬盘上的15个分区;

fdisk DEVICE:DEVICE为设备文件名,后边不要加数字,因为分区是针对整个硬盘设备

分区管理子命令:

p:显示当前分区表

n:创建新分区

d:删除指定分区

t:修改分区ID

l:列出所有支持分区类型及Id

w: 保存退出

q:放弃修改并退出

m:获取帮助

创建完成之后,查看内核是否已经识别新的分区:

#cat /proc/partitions

有三个命令可以让内核重读磁盘分区表:

CentOS5: partprobe [DEVICE]

CentOS6,7下命令:

partx

kpartx

partx命令:

partx DEVICE

partx -a DEVICE

登记某块盘上的所有分区信息,如果某个分区信息已有记录,就会报错

如果某磁盘上的分区信息都没有被记录,则安静完成。

partx -a -n M:N DEVICE 记录第M个到N个分区信息

M 读入第M个分区信息

M: 指定读入分区号的最小值

:N  指定读入 分区号的最大值

kpartx命令:从分区表建立设备映射

kpartx -af DEVICE

-a:添加分区映射

Linux文件系统管理

文件系统:

VFS:Virtual FileSystem

保证各种磁盘设备接口都可以使用

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

(1)日志型文件系统

非日志型文件系统:ext2

日志型文件系统:ext3

(2)swap:交换分区

把硬盘当临时内存来使用

创建文件系统:

在分区上执行格式化(高级格式化)

要使用某种文件系统,满足两个条件:

内核中:支持此种文件系统

用户空间:有文件系统管理工具

创建工具:mkfs(make filesystem)

mkfs -t type DEVICE

mkfs.type DEVICE

mkfs [Tab][Tab] 查看mkfs支持的文件格式

mkfs.cramfs  mkfs.ext3    mkfs.minix

mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs

ext系列文件系统的专用管理工具:

mke2fs-t {ext2|ext3|ext4} DEVICE

-b BLOCK: 1024, 2048, 4096 指定块大小;根据存储文件的大小决定块分配大小

-L 'LABEL': 设定卷标名称

-i #:给多大空间给一个inode

-N #:为此磁盘分区一共保留多少个inode

-m #:预留磁盘空间占据多大百分比的空间为后期管理使用

-c:检查磁盘错误,仅下达一次-c时,会进行快速读取测试

-j:相当于 mk2fs -t ext3; 本来mke2fs是ext2,加入journal成为ext3

-O feature[,...] 启用指定特性

has journal 启用日志功能

-O ^feature[,...] 关闭指定特性 /etc/mke2fs.conf 默认特性配置文件

blkid命令:定位并显示块设备属性 locate/print block device attributes

blkid DEVICE

查看 LABEL,UUID, TYPE

示例:#查看磁盘状况 有一块/dev/sdb新磁盘

[root@localhost ~]# fdisk -l

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 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

Disk identifier: 0x000c2314

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *        2048      411647      204800   83  Linux

/dev/sda2          411648    41371647    20480000   83  Linux

/dev/sda3        41371648    61851647    10240000   83  Linux

/dev/sda4        61851648   251658239    94903296    5  Extended

/dev/sda5        61855744    82335743    10240000   83  Linux

/dev/sda6        82337792    86532095     2097152   82  Linux swap / Solaris

/dev/sda7        61853696    61855743        1024   83  Linux

/dev/sda8        86534144   107505663    10485760   83  Linux

Partition table entries are not in disk order

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0x3bb13419.

Command (m for help): n ------------------->创建新分区

Partition type:

p   primary (0 primary, 0 extended, 4 free) ----> 选择创建主分区

e   extended -----------------------------------> 选择创建扩展分区

Select (default p): p -----------------------------> 创建主分区

Partition number (1-4, default 1): 1

First sector (2048-41943039, default 2048): ----->选择开始柱面 默认2048开始

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1024M

Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): p ----------------------> 打印分区表信息

# 说明 上面创建分区大小有两种方式

#      1 输入开始柱面和结束柱面,决定分区大小

#      2 直接输入 +xx单位 分配分区大小

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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

Disk identifier: 0x3bb13419

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

Command (m for help): n

Partition type:

p   primary (1 primary, 0 extended, 3 free)

e   extended

Select (default p): e -------------------> 创建扩展分区(最多创建一个扩展分区)

Partition number (2-4, default 2): 2

First sector (2099200-41943039, default 2099200):

Using default value 2099200

Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039):

Using default value 41943039

Partition 2 of type Extended and of size 19 GiB is set

Command (m for help): n

Partition type:

p   primary (1 primary, 1 extended, 2 free)

l   logical (numbered from 5) --------->因为前面创建了扩展分区,所以有了逻辑分区

Select (default p): l

Adding logical partition 5

First sector (2101248-41943039, default 2101248): 512

Value out of range.

First sector (2101248-41943039, default 2101248):

Using default value 2101248

Last sector, +sectors or +size{K,M,G} (2101248-41943039, default 41943039): +512M

Partition 5 of type Linux and of size 512 MiB is set

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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

Disk identifier: 0x3bb13419

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200    41943039    19921920    5  Extended

/dev/sdb5         2101248     3149823      524288   83  Linux

Command (m for help): w

# 输入q 不保存操作,退出fdisk

# 输入w 将操作写入分区表

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

#查看分区信息

[root@localhost ~]# cat /proc/partitions

major minor  #blocks  name

8        0  125829120 sda

8        1     204800 sda1

8        2   20480000 sda2

8        3   10240000 sda3

8        4          1 sda4

8        5   10240000 sda5

8        6    2097152 sda6

8        7       1024 sda7

8        8   10485760 sda8

8       16   20971520 sdb

8       17    1048576 sdb1

8       18          1 sdb2

8       21     524288 sdb5

11        0     651264 sr0

#重读分区信息

[root@localhost ~]# partx /dev/sdb

NR   START      END  SECTORS SIZE NAME UUID

1    2048  2099199  2097152   1G

2 2099200 41943039 39843840  19G

5 2101248  3149823  1048576 512M

#磁盘格式化 mkfs 将刚才创建的sdb1 格式化为xfs 格式

[root@localhost ~]# mkfs -t xfs /dev/sdb1

meta-data=/dev/sdb1              isize=256    agcount=4, agsize=65536 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=0        finobt=0

data     =                       bsize=4096   blocks=262144, imaxpct=25

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=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@localhost ~]# blkid /dev/sdb1

/dev/sdb1: UUID="a7712c0d-6264-496e-8f6b-1da5b7da5939" TYPE="xfs"

#使用mkfs.ext4 DEVICE 格式化/dev/sdb5为ext4

[root@localhost ~]# mkfs.ext4 /dev/sdb5

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

32768 inodes, 131072 blocks

6553 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=134217728

4 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304

Allocating group tables: done

Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

#查看分区格式

[root@localhost ~]# blkid /dev/sdb5

/dev/sdb5: UUID="7ff064f9-49c8-466d-8d86-7f4eba5e353b" TYPE="ext4"

#ext系列文件系统的专用管理工具 创建分区

[root@localhost ~]# mke2fs -t ext4 -L 'test_mk2fs' /dev/sdb6

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=test_mk2fs

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

32768 inodes, 131072 blocks

6553 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=134217728

4 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304

Allocating group tables: done

Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

如有错误,敬请指正!

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值