Linux磁盘分区及文件系统管理
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要讲解了"Linux磁盘分区及文件系统管理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Linux磁盘分区及文件系统管理"吧!一、Linux
千家信息网最后更新 2025年01月24日Linux磁盘分区及文件系统管理
这篇文章主要讲解了"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]# partedGNU Parted 3.1Using /dev/sdaWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) select /dev/sddUsing /dev/sdd(parted) mklabel gptWarning: The existing disk label on /dev/sdd will be destroyed and all data onthis 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) printModel: VMware, VMware Virtual S (scsi)Disk /dev/sdd: 2147MBSector size (logical/physical): 512B/512BPartition Table: gptDisk 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/sdeCommand (m for help): nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): pPartition number (1-4, default 1): 1First sector (2048-4194303, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1G Partition 1 of type Linux and of size 1 GiB is setCommand (m for help): tSelected partition 1Hex code (type L to list all codes): 82Changed type of partition 'Linux' to 'Linux swap / Solaris'Command (m for help): wThe partition table has been altered![root@localhost ~]# mkswap /dev/sde1Setting up swapspace version 1, size = 1048572 KiBno label, UUID=adcb05b1-3368-4e97-80c8-7ed13e959c63[root@localhost etc]# free -m total used free shared buff/cache availableMem: 3778 380 166 6 3231 3140Swap: 2047 6 2041[root@localhost etc]# swapon /dev/sde1[root@localhost etc]# free -m total used free shared buff/cache availableMem: 3778 381 165 6 3231 3139Swap: 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): nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): pPartition number (1-4, default 1): 1First sector (2048-4194303, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1GPartition 1 of type Linux and of size 1 GiB is setCommand (m for help): wThe 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/sde1mke2fs 1.42.9 (28-Dec-2013)Filesystem label=MYDATAOS type: LinuxBlock size=2048 (log=1)Fragment size=2048 (log=1)Stride=0 blocks, Stripe width=0 blocks65536 inodes, 524288 blocks104857 blocks (20.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=26895974432 block groups16384 blocks per group, 16384 fragments per group2048 inodes per groupSuperblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): doneWriting 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/sde1USER PID ACCESS COMMAND/dev/sde1: root kernel swap /dev/sde1
3.除根文件以为的其它文件开机自动挂载
/etc/fstab
UUID=795d1641-c4f8-4f72-911b-6eedfe2ac733 / xfs defaults 0 0UUID=ecde1354-5470-4692-bc2b-9cc94bd3b11c /boot xfs defaults 0 0UUID=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 0UUID=ecde1354-5470-4692-bc2b-9cc94bd3b11c /boot xfs defaults 0 0UUID=ad488060-c1c6-4871-a8e2-228de0b90457 swap swap defaults 0 0LABEL=MYDATA /mydata ext4 defaults 0 0
感谢各位的阅读,以上就是"Linux磁盘分区及文件系统管理"的内容了,经过本文的学习后,相信大家对Linux磁盘分区及文件系统管理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
文件
系统
设备
磁盘
数据
目录
格式
类型
纪录
管理
命令
大小
指针
时间
标识
空间
存储
支持
入口
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
蓝迩互联网科技有限公司
sql 映射数据库出错
工业互联网网络安全上市公司
移动应用软件开发方向是什么
大学生网络安全第一
数据库中什么时候需要where
如何构建数据库
服务器 2630
关于网络安全需要注意什么
耐威科技工业互联网
处理数据库100w数据
从数据库获得图片的路径
未成年人网络安全谁保护
传统关系型数据库的约束条件
派出所建dna数据库
服务器安全组如何设置
网络安全的演讲稿题目
软件开发的质量目标
传统软件开发把软件
数据库如何修改只读模式
服务器中的文件如何加密码
数据库删除选课表中的字段
杭州凤游网络技术有限公司
清远销售系统管理软件开发
传统关系型数据库的约束条件
网络安全漏洞的两大核心技术
大陆用户购买香港阿里本地服务器
整车软件开发呈现
淘宝是平台还是软件开发
查询数据库备注