这篇文章主要讲解了“Linux磁盘分区及文件系统管理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux磁盘分区及文件系统管理”吧!
一、Linux磁盘
iops : io per second 磁盘接口类型: IDE : 并口,在高频下容易出错,133MB/s; SATA : 串口,可高频,6gbps(1gbps=128MB/s) SCIS : 并口,ultrascsi320 ,320MB/s SAS : 串口,6gbps USB : 串口,480MB/s
硬盘类型:
机械硬盘
track :磁道
sector:扇区
cylinder: 柱面,分区基于柱面;
平均寻道时间: 5400rpm,7200rpm,10000rpm,15000rpm
(铀分离的设备的转速达到30000rpm,机械硬盘这个转速已经很厉害了)
高转速产生大量的热能,任何微小的尘粒在如此高转速下都会对硬盘造成影响)
linux的设备类型: 块(block) : 随机访问; 字符(character):线性访问;
设备文件: FHS
/dev
设备文件: 关联至设备的驱动程序,设备的访问入口;
设备号:
major:主设备号,区分设备类型,用于标明设备所需要的驱动程序;
minior:次设备号,区分同种类型下的不同的设备,是特定设备的访问入口;
设备文件名
磁盘:
IDE:/dev/hd[a-z]
SCSI,SATA,SAS,USB: /dev/sd[a-z]
注意: Centos6和7统统将磁盘设备文件标识/dev/sd【[a-z]#
如 /dev/sda
/dev/sda1,/dev/sda2;...
引用设备的方式: 设备文件名,卷标,UUID
磁盘分区:
MBR及其使用:
MBR: Master Boot Record
特点:
占据磁盘0号sector,512bytes,分为三部分:
446bytes:bootloader程序,引导启动操作系统;
64bytes : 分区表,每16个bytes标识一个分区,一共只有4个分区;
4个主分区或者3主+1个扩展分区(多个逻辑分区);
2bytes : MBR区域的有效性标识,55AA为有效;
GPT及其使用。
GPT:Globally Unique IdentifierPartition Table Format 全局唯一标识符分区表。
特点:
驱动器上的每个分区都有一个全局唯一的标识符;
支持几乎无限个分区数量,除非操作系统作出了限制;
MBR占用的第一个sector现在是LBA0,GPT使用了34个LBA区块来纪录分区信息(第一个sector依然兼容的MBR);
GPT 除了前面34个LBA 之外,整个磁盘的最后33个LBA也拿来作为另一个备份。
LBA0 (MBR 相容区块)与MBR模式相近,前446B还是boot loader,后64B换成一个特殊标记,用于表面此磁盘是GPT格式。
LBA1 (GPT 表头纪录)纪录分区表本身的位置与大小,备份 GPT 分区 放置的位置,以及校验码
LBA2-33 (实际纪录分区信息处)从LBA2区块开始,每个LBA都可以纪录4个分区纪录,所以在默认的情况下,总共可以有4^32 = 128个分区纪录
传统BIOS---->MBR格式。
UEFI ---->MBR格式+GPT格式 (Unified Extensible Firmware Interface:统一的可扩展固件接口)
linux下GPT分区:
这里使用parted命令,fdisk也有gpt分区操作。
(1)[root@localhost tmp]#parted;
(2)help;
(3)select device;
(4)mklabel gpt;
(5)mkpart;
---输入分区名字;
---文件系统;
---起始点,不要用0开头;
---终结点;
---起始点,可以用#G;
此时已经分区成功
(6)print 查看
(7)quit
[root@localhost tmp]# parted
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdd
Using /dev/sdd
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdd will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) mkpart
Partition name? []? mygpd_data
File system type? [ext2]? ext4
Start? 1
End? 2G
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2146MB 2145MB mygpd_data
二、fdisk命令
1.查看 fdisk -k device
2.管理 fdisk device
fdisk 提供了一个交互式接口来管理分区,具有多个子命令;所有操作均在内存中完成;
没有直接同步到磁盘,直到使用w命令保存到磁盘上;
注意: 在已经分区并且已挂载其中某个分区的磁盘设备上创建新的分区,内核可能在其创建完成后无法识别;
查看: cat /proc/partitions
通知内核,强制读取磁盘分区:
centos5: partprobe device;
centos6.7:
partx -a device
kpartx -a device
分区创建工具:parted ; sfdisk
三、文件系统创建
格式化:
低级格式化,分区之前,划分磁道;
高级格式化,分区之后对分区创建文件系统,
superblock,i节点inode table,数据块data block,目录块directory block,
间接块indirection blockblock ,位图索引inode bitmap,block bitmap;
元数据区+实际数据区
元数据区:inode table
文件元数据:文件大小,权限、宿主宿组、时间戳、数据块指针等,不记录文件名;
元数据区对每一个文件的信息记录格式是统一的,给出一个模板然后根据文件的实际情况填写而已;
数据块指针的记录内容是有限的,决定了文件的大小上限。根据数据块指针到数据区取得文件的实际数据。
符合链接文件:存储数据指针的空间中存储了文件的真实访问路径。
设备文件: 存储数据指针的空间中存储了设备号。
这两种文件都不占据数据区。
VFS: Virtual File System 解决不同文件系统之间的互认问题。
Linux文件系统: ext2,ext3,ext4,xfs,btrfs
光盘: ISO9660
网络文件系统: nfs,clfs
集群文件系统: gfs2,ocfs2
内核级分布式文件系统: ceph
windows文件系统:vfat,ntfs
windows无法识别linux的文件系统,因此,存储设备在需要两种系统之间交叉使用时,
应使用两者同时支持的文件系统:vfat
# mkfs.vfat device
注意: U盘格式为ntfs的话,可以用一个NTFS-3G的插件,安装后linux可以支持NTFS文件,linux将其识别为ntfs-3g文件系统
ntfs-3g-ntfsprogs-2011.3.32.tgz
解压后执行./config make makeinstall 编译安装
若U盘被识别为sda3设备,则执行如下指令
#mount -t ntfs-3g /dev/sda /mnt/win
伪文件系统:proc,sysfs,tmpfs,hugepagefs
用户空间的分布式文件系统: mogilefs,moonsefs,glusterfs
交互文件系统:swap; linux上交互分区必须使用独立的文件系统,该system ID必须为82,通过fdisk上的t进行设置; 创建swap文件系统: mkswap device 启用 : swapon devcie -a : 启用在/etc/fstab文件中所有的swap设备。 禁用 : swapoff devcie 创建一个大小为1G的swap分区,并启用。
[root@localhost ~]# fdisk /dev/sde
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-4194303, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1G
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): w
The partition table has been altered!
[root@localhost ~]# mkswap /dev/sde1
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=adcb05b1-3368-4e97-80c8-7ed13e959c63
[root@localhost etc]# free -m
total used free shared buff/cache available
Mem: 3778 380 166 6 3231 3140
Swap: 2047 6 2041
[root@localhost etc]# swapon /dev/sde1
[root@localhost etc]# free -m
total used free shared buff/cache available
Mem: 3778 381 165 6 3231 3139
Swap: 3071 6 3065
四、文件系统使用
1.创建文件系统工具: mkfs
mkfs.ext2; mkfs.ext3; mkfs.ext4; mkfs.xfs;
查看文件系统类型: blkid device;
mke2fs命令
mke2fs [OPTIONS] device
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L LABEL卷标
-j 创建日志功能文件系统ext3
-i # 多少个字节一个inode
-N # 创建inode的总数
-m # 预留空间,百分表
-O [^] 以指定的特性创建目标文件系统;
练习:创建一个1G的分区,并格式化为ext4文件系统。要求:
(1)block大小为2048,预留空间20%,卷标为MYDATA,
[root@localhost tmp]# fdisk /dev/sde
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-4194303, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1G
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
root@localhost tmp]# mke2fs -t ext4 -b 2048 -L MYDATA -m 20 /dev/sde1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=MYDATA
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 524288 blocks
104857 blocks (20.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268959744
32 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
2.文件系统挂载与卸载
挂载与卸载: mount umount
根文件系统外的其它文件系统,要想能够被访问到,都必须通过‘关联’至根文件系统上的某个目录来实现,
此‘关联’操作即‘挂载’,此目录即为挂载点。
挂载点: mount point 用于作为另一个文件系统的访问入口
(1): 事先存在;
(2): 应用使用未被或或不会被其它目录进程使用的目录;
(3): 挂载点下原有的文件建会被隐藏;
思考一个问题:将一个装有linux系统的磁盘(根文件系统A)接到另一台linux系统(B)的设备上,然后挂载在B系统一个目录下,
B上的某用户(root或者普通用户)对A文件的读写执行权限?
mount [-fnrsvw] [-t vfstype] [-o options] device dir
-r: 只读
-w: 读写(默认选项)
-n: 禁止同步(默认情况下,设备挂载与卸载都同步到/etc/mtab中)
-t --vfstype: 指定文件类型
-L --LABEL: 以label方式指明设备
-U --UUID : 以uuid方式指明设备
-o : 自动挂载所有支持自动挂载的设备
sync/async: 同步/异步
atime/noatime: 是否更新其访问的时间戳
diratime/nodiratime: 只针对目录时间戳
remount: 重挂
acl: 支持使用acl功能
#mount -o acl device dir
#mount -o alc device
ro:只读
rw:读写
exec/noexec 是否允许运行此设备上的文件
使用技巧:mount --bind 源目录 目标目录, 可以实现将目录绑定至另一个目录上,作为其临时访问入口。
查看当前系统所有已挂载设备:
# mount
# cat /etc/mtab
# cat /proc/mounts
umount [-dflnrv] {dir|device}...
正在被进程访问的挂载点无法被卸载
查看被何进程使用:
#lsof mount_point
#fuser -v mount_point
[root@localhost /]# fuser -v /dev/sde1
USER PID ACCESS COMMAND
/dev/sde1: root kernel swap /dev/sde1
3.除根文件以为的其它文件开机自动挂载
/etc/fstab
UUID=795d1641-c4f8-4f72-911b-6eedfe2ac733 / xfs defaults 0 0
UUID=ecde1354-5470-4692-bc2b-9cc94bd3b11c /boot xfs defaults 0 0
UUID=ad488060-c1c6-4871-a8e2-228de0b90457 swap swap defaults 0 0
(1)要挂载的设备:设备文件,LABEL,UUID,伪文件系统
(2)挂载点,swap类型的挂载点为swap
(3)文件系统类型
(4)挂载选项
(5)转储频率,0从不,1每天,2每隔一天
(6)自检次序
接上面的练习: (2) 挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。 (3)可开机自动挂载。
[root@localhost mydata]# mount -o noatime noexec -L MYDATA /mydata ---错误,o后面的参数以,分隔
[root@localhost mydata]# mount -o noatime,noexec -L MYDATA /mydata
[root@localhost /]# vim /etc/fstab
UUID=795d1641-c4f8-4f72-911b-6eedfe2ac733 / xfs defaults 0 0
UUID=ecde1354-5470-4692-bc2b-9cc94bd3b11c /boot xfs defaults 0 0
UUID=ad488060-c1c6-4871-a8e2-228de0b90457 swap swap defaults 0 0
LABEL=MYDATA /mydata ext4 defaults 0 0
感谢各位的阅读,以上就是“Linux磁盘分区及文件系统管理”的内容了,经过本文的学习后,相信大家对Linux磁盘分区及文件系统管理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://blog.itpub.net/69934036/viewspace-2651267/