赞
踩
传统的磁盘与文件系统应用中,一个分区就只能够被格式化成为一个文件系统,所以我们可以说一个文件系统就是一个硬盘分区。
随着新技术的出现如LMM与软件磁盘阵列software raid),这些技术可以将一个分区格式化为多个文件系统(例如LWM),也能够将多个分区合成一个文件系统(LM,RAID)。所以目前在格式化时已经不再说是针对硬盘分区来格式化了,通常可以称呼一个可被挂载的数据为一个“文件系统”而不是一个分区。
文件系统类型众多,包括:ext2,ext3,ext4,xfs,brtfs,zfs(man 5 fs可以取得全部文件系统的介绍)
不同文件系统采用不同的方法来管理磁盘空间,各有优劣;文件系统是具体到分区的,所以格式化针对的是分区,分区格式化是指采用指定的文件系统类型对分区空间进行登记、索引并建立相应的管理表格的过程。
ext2具有极快的速度和极小的CPU占用率,可用于硬盘和移动存储设备。
ext3增加日志功能,可回溯追踪
ext4日志式文件系统,支持1EB(1024*1024TB),最大单文件16TB,支持连续写入可减少文件碎片。rhel6默认文件系统。
xfs可以管理500T的硬盘。rhel7默认文件系统
brtfs文件系统针对固态盘做优化
格式化命令:
mkfs -t <文件系统类型> <分区设备文件名>
mkfs.xfs /dev/sdb1
zfs man 5 fs可以取得全部文件系统的简要介绍
ps:EXT(Extended file system)是延伸文件系统、扩展文件系统,ext1于1992年4月发表,是为linux核心所做的第一个文件系统
Linux操作系统的文件权限(mwx)与文件属性(拥有者、用户组、时间参数等b文件系统通常会将这两部分的数据分别存放在不同的区块:
类Unix操作系统中一切皆文件(everything is a file),像打印机,CD碟片,硬盘,输入输出硬件都被视为一个文件,而这些被视为文件的物理介质就可以称为设备文件.
物理介质分为字符设备和块设备,除了物理介质,Unix操作系统还有一类设备文件,叫伪设备,这三类设备文件的具体含义是:
字符设备(Character devices)
每次与系统传输数据时,只传输一个字符.没有缓冲区,系统直接从物理设备读取字符.常用于流设备的通信.因为没有缓存,所以只能顺序读取字符,不支持随机读取.像串口和键盘就是字符设备.
块设备(Block devices)
与字符设备相反,块设备每次与系统传输数据时,是以块(Block)的方式来传输的.由于以块来读取,所以需要一定读取时间,故常设有缓存区,支持随机读取.常见的块设备有硬盘,CD-ROM驱动器和闪存等.
伪设备(Pseudo-devices)
前面两种设备文件是物理设备,而伪设备则不是,它们通常是为操作系统提供特定的功能而存在的.常见的伪设备有:
/dev/null: 接受和丢弃所有输入,即吞下输入,然后什么都不做.
/dev/zero:产生联系的NULL字符串流,用c语言表示就是”\0\0\0\0\0”
/dev/random:产生一个随机的字符串流
/dev/full:模拟一个已经装满了内容的设备
伪设备的作用如:
dd if=/dev/zero of=testzero count=1024 bs=1024
会创建一个大小为1024的,文件名为testzero的空文件。
在linux下,/dev目录是很重要的,各种设备都在下面。
dev是设备(device)的英文缩写。/dev这个目录包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口,但是没有入口。必须通过挂载的方式对他们进行访问。
特定设备有特定的前缀,如对硬盘,前缀是sd,如sda就是第一块硬盘,并且sda1 、sda2、sda3、sda4是其分区。
假设你有一个有2个SCSI磁盘的系统,一个在SCSI地址2,另一个在SCSI地址4。第一个磁盘(地址2)被命名为sda,第二个磁盘被命名为sdb。如果sda驱动器上有3个分区,这些分区将被命名为sda1、sda2和sda3。这同样适用于sdb磁盘及其分区。
其中sd代表的就是scsi硬盘,每个scsi磁盘上的分区通过在磁盘名后面加上一个十进制数字表示,例如sda1和sda2表示系统中名列前茅个SCSI磁盘驱动器的名列前茅个和第二个分区。
串行高级技术附件 (SATA) 驱动器:
随着SATA驱动器的出现,约定发生了变化,现在硬盘驱动器大多被称为 sda 而不是 hda。其中 sd 代表 串行驱动器。
分区表显示硬盘驱动器或任何其他存储设备的分区。分区表布局有两种标准:
硬盘命名惯例:
首先要知道的是,Linux中没有 C盘 或 E盘 。您会看到类似 /dev/sda、 /dev/sdb、 /dev/sdc,以此类推。该 dev 是设备的缩写。该 sd 是 SCSI 大容量存储驱动器的缩写。
分区和分区编号:
要在硬盘上安装操作系统,必须将其分为若干不同的存储单元。我们将这些存储单元称为分区。在 MBR 下:这是几乎所有 Linux 发行版上的默认设置,有三种不同类型的分区 — 主分区、扩展分区和逻辑分区。在MBR中,任何未显式创建为扩展或逻辑分区的分区都是主要分区。任何未分配的空间都显示为 可用。虽然可能是可用,但您不能在该状态中使用它。就计算机而言,在对它进行分区之前,空闲空间是不存在的。
/dev/loop0 是Linux系统中的一个虚拟块设备,用于将一个文件挂载为块设备,通常用于挂载镜像文件、软件包、磁盘映像等等。因此,当/dev/loop0满了的时候,意味着所挂载的文件已经占用了全部的空间。当/dev/loop0满了的时候,会对系统产生一些影响,包括:
挂载该设备的进程可能会无法继续写入数据,导致相关程序异常终止。
如果该设备中存储的是重要的数据,且没有备份,那么当设备满了之后,新的数据将无法写入,可能会导致数据丢失。
如果/dev/loop0满了,还会对其他进程和设备造成一定的影响,因为操作系统在运行时需要占用一定的系统资源,如果某个设备已经满了,会导致操作系统的部分功能无法正常工作。
因此,如果/dev/loop0满了,建议立即采取措施释放空间或者挂载其他设备替换它。可以通过删除不需要的文件或者扩容该文件所在的分区等方式来释放空间。
解决loop满了的方法:
#清理方法
sudo apt autoremove --purge snapd
其他命令
#查看所有回环设备 losetup #把xxx.iso镜像文件挂载到一个目录下 mount -o loop xxx.iso /media #等同 losetup /dev/loop0 xxx.iso mount /dev/loop0 /media #在制作根文件系统时,核心步骤如下: 1. 用 dd 创建一个文件镜像 2. 用 mkfs 格式成需要的格式 3. 建立一个临时目录 temp 4. 将文件镜像 mount 到 temp 目录 5. 在 temp 目录下建立根文件系目录 6. umount temp 目录 dd if=/dev/zero of=rootfs.ext4 bs=1M count=2048 > /dev/null 2>&1 mkfs.ext4 -F -L linuxroot rootfs.ext4 mkdir temp mount rootfs.ext4 temp # 这里需要 loop device 支持, 否则无法操作成功 ...... umount temp #确认内核是否开启 loop device 支持: ls -l /dev/loop* brw-rw---- 1 root disk 7, 0 11月 10 16:33 /dev/loop0 brw-rw---- 1 root disk 7, 1 11月 10 14:36 /dev/loop1 $ losetup -f # 查询第一个空闲可用的 loop device /dev/loop0 $ sudo losetup /dev/loop0 /path/to/test.img # 关联 loop device 和 普通文件 test.img $ losetup -l # 查询 关联 NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE /dev/loop0 0 0 0 0 /path/to/test.img $ sudo mount /dev/loop0 /path/to/mnt/dir # 挂载 loop device (test.img) 到 指定目录 $ sudo umount /dev/loop0 # 卸载 $ sudo losetup -d /dev/loop0 # 接除 loop device 和 普通文件 test.img 的 关联
snap应用:
Snap 包是 Ubuntu 16.04 LTS 发布时引入的新应用格式包。
Snap 使用了 squashFS 文件系统,一种开源的压缩,只读文件系统,基于 GPL 协议发行。一旦 snap 被安装后,其就有一个只读的文件系统和一个可写入的区域。应用自身的执行文件、库、依赖包都被放在这个只读目录,意味着该目录不能被随意篡改和写入。
squashFS 文件系统的引入,使得 snap 的安全性要优于传统的 Linux 软件包。同时,每个 snap 默认都被严格限制(confined),即限制系统权限和资源访问。但是,可通过授予权限策略来获得对系统资源的访问。这也是安全性更好的表现。
#1、 df -T 命令查看 #文件系统类型在Type列输出。只可以查看已经挂载的分区和文件系统类型 df -T /dev/sdb Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sdb xfs 315467264 4356404 311110860 2% /mysql #2、parted -l命令查看 #parted -l 命令会输出文件系统类型(File system), 其中参数l表示列出所有设备的分区信息 parted -l Model: ATA ST500DM002-1BD14 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32.3kB 107MB 107MB primary ext3 boot 2 107MB 500GB 500GB primary lvm #3、blkid命令查看 #查看已格式化分区的UUID和文件系统。使用blkid可以输出分区或分区的文件系统类型,查看TYPE字段输出 blkid /dev/sda1 /dev/sda1: LABEL="/boot" UUID="582b189c-396c-4da8-a7a3-1effaa3e4000" TYPE="ext3" #4、命令lsblk -f 查看 #有些系统可能没有这个命令,需要安装。注意:lsblk -f也可以查看未挂载的文件系统类型 lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT fd0 sda ├─sda1 xfs b98659b2-5f8c-493e-9304-658905ef1391 /boot └─sda2 xfs b7559ac5-b3a4-4b00-b98a-a2a2611806d0 /
df和du都可以用来查看磁盘空间,但功能并不同:
可以理解文件系统是一整本书,拥有目录,那么从目录中就知道有多少个章节;如果你删了一个目录,后台会延迟同步到目录中,因此,从目录中查看的话,速度块,但是不准。
df -a, --all:显示所有文件系统,包括虚拟文件系统
df -i, --inodes:显示 inode 使用情况而不是块使用情况
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 29640780 4320704 23814388 16% /
udev 1536756 4 1536752 1% /dev
#Filesystem:文件系统的名称或标识符。
#1K-blocks:文件系统的总容量,以 1KB 块为单位。即文件系统总大小。
#Used:文件系统已经使用的容量,以 1KB 块为单位。
#Available:文件系统中仍然可用的容量,以 1KB 块为单位。
#Use%:文件系统已使用容量占总容量的百分比。
#Mounted on:文件系统被挂载到的目录或位置。
#查看硬盘状况 sudo fdisk -l #删除分区 fdisk /dev/sda 欢迎使用 fdisk (util-linux 2.34)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助): d 分区号 (1,2, 默认 2): 2 #查看挂载情况 mount -l #取消挂载 umount /dev/sda2 #格式化 mkfs.ext4 /dev/sda #查看磁盘或者硬盘信息 parted /dev/sda print
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。