Linux分区引导记录pbr,9月01日课程作业(练习)-Linux文件系统管理

1、复习本次课程所讲的内容;

Linux磁盘管理

硬盘:硬盘是通用的叫法,其实硬盘和磁盘是一样的,都是用来存东西的;还有磁带、光盘、U盘等只是存储的介质不一样。

机械式硬盘

SSD固态硬盘

机械式:

track磁道

每个扇区(sector): 512bytes

磁柱(cylinder): 分区的基本单位;

主引导记录 MBR:Master Boot Record             512bytes

446: bootloader

64: filesystem allocation table

16: 标识一个分区

2:55AA

磁盘的主引导扇区=磁盘的主引导记录(MBR 446)+磁盘分区表(DPT 64) +结束符(55AA)bootload可以安装在磁盘的主引导记录(MBR)或是分区的引导记录(PBR,也叫DBR)

(1)linux的bootload可以安装在两者上(MBR,PBR)(2)windows自行安装的MBR只用作跳转到指定的分区上,windows的bootloader 是安装在分区的PBR上的。

磁盘接口类型:

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

SCSI: 640MB/s

SATA:6Gbps

SAS:6Gbps

USB:480MB/s

识别硬盘设备:/dev/sd

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

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

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

5+:逻辑分区标识

设备文件:特殊文件

设备号:

major, minor

major: 设备类型

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

“块”:block,随机设备

“字符”:character,线性设备

GPT

设备文件分为两种:块设备文件(b)和字符设备文件(c)

设备文件一般存放在/dev目录下,对常见设备文件作如下说明:

/dev/hd[a-t]:IDE设备

/dev/sd[a-z]:SCSI设备

/dev/fd[0-7]:标准软驱

/dev/md[0-31]:软raid设备

/dev/loop[0-7]:本地回环设备

/dev/ram[0-15]:内存

/dev/null:无限数据接收设备,相当于黑洞

/dev/zero:无限零资源

/dev/tty[0-63]:虚拟终端

/dev/ttyS[0-3]:串口

/dev/lp[0-3]:并口

/dev/console:控制台

/dev/fb[0-31]:framebuffer

/dev/cdrom => /dev/hdc

/dev/modem => /dev/ttyS[0-9]

/dev/pilot => /dev/ttyS[0-9]

/dev/random:随机数设备

/dev/urandom:随机数设备

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

分区工具:

fdisk, parted, sfdisk

fdisk工具的使用:

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

分区管理子命令:

p: 显示

n: 创建

d: 删除

t: 修改分区ID

l: 列出所有支持ID类型

w: 保存退出

q: 放弃修改并退出

m: 获取帮助

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

# cat /proc/partitions

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

CentOS 5: partprobe [DEVICE]

CentOS 6,7:

partx

kpartx

partx命令:

partx DEVICE

partx -a DEVICE

partx -a -n M:N DEVICE

M

M:

:N

kpartx命令:

kpartx -af DEVICE通知内核强制重读分区表【对于一个已经存在的磁盘,内核是不会直接识别的】

e25a511b360e6ad56a90e998e13195bb.png

2、总结整理磁盘管理及文件系统管理中设计的各种命令的使用,并附注一定的示例;

1)、查看系统分区情况

Linux分区引导记录pbr,9月01日课程作业(练习)-Linux文件系统管理_第1张图片

2)获取fdisk参数信息的相关帮助命令:fdisk /dev/sda  #进入fdisk操作环境

m                        #打印帮助 列表

Linux分区引导记录pbr,9月01日课程作业(练习)-Linux文件系统管理_第2张图片

3)新建分区

按n #创建一个分区

Command (m for help): m

Command action

a   toggle a bootable flag

b   edit bsd disklabel

c   toggle the dos compatibility flag

d   delete a partition

l   list known partition types

m   print this menu

n   add a new partition

o   create a new empty DOS partition table

p   print the partition table

q   quit without saving changes

s   create a new empty Sun disklabel

t   change a partition's system id

u   change display/entry units

v   verify the partition table

w   write table to disk and exit

x   extra functionality (experts only)

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 3

First cylinder (7063-26108, default 7063):

Using default value 7063

Last cylinder, +cylinders or +size{K,M,G} (7063-26108, default 26108): +10G

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

重启后生效。

linux文件系统管理

文件系统:

VFS:Virtual File System

Linux:ext2,ext3,ext4,reiserfs,xfs,btrfs,swap

光盘:iso9600

windows:fat32(vfat),ntfs

Unix:ffs,ufs,jfs,jfs2

网络文件系统:nfs,cifs

集群文件系统:ocfs2,gfs2

分布式文件系统:ceph

mosefs,mogilefs,hdfs,gfs,gluterfs

(1)日志型文件

非日志型文件:ext2

日志型文件系统:ext3,ext4,reserfs,xfs,btrfs,swap

日志型文件系统[ext3,ext4]和非日志型文件系统[ext2]的区别:

日志型写入步骤:1.预备,当系统要写入文件时,会先在日志记录块中记录某个文件准备要写入的信息

2.实际写入,开始写入文件的权限和步骤;开始更新meta data[中间数据]的数据

3. 结束,完成数据与metadata的更新后,在日志记录块中完成该文件的记录

非日志写入步骤:1. 先确定用户对于欲添加文件的目录是否有w和x权限,若有的话才能添加

2.根据inode bitmap 找到没有使用的inode号码,并将新文件的权限/属性写入

3.根据block bitmap 找到没有使用的block号码,并将实际数据写入block中,且更新inode的block指向数据

4.将刚才写入的inode与block数据同步更新inode bitmap与block bitmap,并更新superblock的内容

当中途断电等因素导致系统中断时,会出现数据的不一致状态,这时非日志文件系统需要进行一致性检查,很费时间。而日志文件系统,只需要去检查日志记录块就可以知道那个文件发生了问题,不必去针对整块文件系统去检查。

(2)swap:交换分区

创建文件系统:在分区上执行格式化(高级格式化)

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

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

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

创建工具:mkfs(make file system)

-t {ext2|ext3|ext4}:指明要创建的文件系统类型

mkfs-t ext4 = mkfs.ext4 = mke2fs -t ext4

b {1024|2048|4096}:其上限由page frame决定

-L LABEL:指定要使用的卷标[使用时,LABEL='MYLABELNAME']

-j: 相当于使用-text3

mkfs.ext3= mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

-i #: 指明inode与字节的比率[不加% ],;即,每多少字节给创建一个inode;

-N #: 直接指明给此文件系统创建多少个inode

-m #:指定预留空间的百分比[只有root能用,不用%];默认为5;

-O [^]FEATURE:可以用来指明这个文件系统额外可以具有的属性,具体可以查看man手册

例:-o has_journa 启用日志属性

-o ^has_journa 不启用日志属性

e2label: 调整卷标

查看:e2label /dev/DEVICE

设定卷标:e2label /dev/DEVICE LABEL

tune2fs:查看或修改ext系列文件系统的某些属性

查看超级块中的数据信息:如UUID:全局惟一标识符

tune2fs-l /dev/DEVICE

例 tune2fs -l /dev/sda5

修改指定文件系统的属性:

-j:ext2 --> ext3

-L LABEL: 修改卷标;

-m #: 调整预留空间的百分比;

-O [^]FEATURE: 开启或关闭某种特性

-o [^]mount_options: 开启或关闭某种默认挂载选项

-o acl开启acl

-o ^acl关闭acl

dumpe2fs命令:显示ext系列文件系统属性信息

dumpe2fs[-h] /dev/DEVICE

例dumpe2fs -h/dev/sda5

blickid命令:可以查看文件类型

检测文件系统

fsck.ext2, fsck.ext3, fsck.ext4, fsck.xfs ...

fsck:文件系统检查命令

-tFSTYPE

fsck-t FSTYPE = fsck.FSTYPE

例fsck -t ext4 修复即删除不一致文件

-a:自动修复所有错误[慎用]

-r: 交互式修复错误

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

e2fsck

-y: 对所有问题自动回复为yes;

-f: 即使文件系统处于clean状态,也要强制进行检测;

Windows无法识别Linux上专用的文件系统,因此,有存储设备需要两种系统之间交叉使用时,应该使用windows支持的文件系统:

#mkfs -t vfat /dev/DEVICE

挂载:

注意:1.在Linux系统上,所有的文件系统必须通过根文件系统的某个分支来访问;

2.单一文件系统不应该被重复挂载在不同的挂载点(目录)中

3.单一目录不应重复挂载多个文件系统

4.作为挂载点的目录理论上应该都是空白目录,不然原来目录下的文件会被隐藏

根文件系统:根是一切文件系统的访问入口,根关联到的分区,有一定的要求:FHS

除了根,其余所有的其它文件系统如果想要被访问,都只能够通过“关联”至根文件系统上的某个目录来实现;这种操作即所谓的“挂载”,也即mount;相反动作,即卸载,命令为umount

挂载点:mount_point,即用于作为另一个文件系统访问入口的目录;

mount命令:

mountDEVICE MOUNT_POINT

挂载点

1、事先存在;

2、应该使用别的进程未使用的目录;

3、挂载点下原有的文件将被隐藏;

mount:将显示当前系统已经挂载的所有文件系统的相关信息;

mount[OPTION]... [-t FSTYPE] [-o OPTION] [DEVICE] MOUNT_POINT

命令选项:

-r: 只读挂载

-w: read and write,读写挂载

-t FSTYPE: 被挂载的设备上的文件系统类型;可省略,此时mount会自动使用blkid命令来判断之;

-L LABEL: 以卷标的方式指定要挂载的设备,因此,此时DEVICE必须省;

-U UUID:以UUID的方式指定要挂载的设备,因此,此时DEVICE必须省;

-a: 自动挂载所有的支持自动挂载的设备(/etc/fstab文件中定义的支持自动挂载的设备);

-n: 默认情况下,设备挂载与否的改变结果会被保存于/etc/mtab中一份;-n选项用于变动时不更新此文件

此时,如果想查看挂载的所有文件系统:cat /proc/mounts

-a: 自动挂载所有支持自动挂载的设备;

-B:绑定目录至另一个目录上;

-o 挂载选项:

async:异步模式

sync: 同步模式

atime/noatime:是否更新访问时间戳;

diratime/nodiratime:是否更新目录的访问时间戳;

auto/noauto: 是否允许此设备被自动挂载;

exec/noexec:是否允许执行此文件系统上应用程序;

dev/nodev:是否支持在此设备上使用设备文件;

suid/nosuid:

remount:重新挂载

ro

rw

user/nouser: 是否允许普通挂载此设备;

acl:是否支持此设备上使用facl;

defaults:rw, suid, dev, exec, auto, nouser, and async

umount:卸载命令

# umount DEVICE

# umount MOUNT_POINT

查看正在访问指定挂载点的进程:

# fuser -v MOUNT_POINT

终止所有正在访问指定的挂载点的进程:

# fuser -km MOUNT_POINT

3、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录

1)创建挂载点    #mkdir /mydata

896c0134f823d47a244b5b391bbc3d7b.png

2)创建分区    #我已创建sda3

Linux分区引导记录pbr,9月01日课程作业(练习)-Linux文件系统管理_第3张图片

3)分区文件系统高级格式化    #mkfs.ext4 /dev/sda3

Linux分区引导记录pbr,9月01日课程作业(练习)-Linux文件系统管理_第4张图片

4)配置挂载文件:/etc/fstab      #vim /etc/fstab

/mydata                     ext4 defaults        0 0

62d0ba0b9071da05eb417f9a90574b19.png

5)挂载到 /mydata

# mount /dev/sda3 /mydata

8a2c66f957a8ad71c9e74889bf497c51.png

你可能感兴趣的:(Linux分区引导记录pbr)