磁盘和文件系统

fdisk -l [磁盘设备] //非交互式查看磁盘分区

fdisk [磁盘设备] //交互式查看和管理磁盘分区

非交互式查看磁盘分区

[root@localhost ~]# ll /dev/sd*
brw-rw—-. 1 root disk 8, 0 8月 1 08:49 /dev/sda
brw-rw—-. 1 root disk 8, 1 8月 1 08:49 /dev/sda1
brw-rw—-. 1 root disk 8, 2 8月 1 08:49 /dev/sda2
[root@localhost ~]# fdisk -l /dev/sda

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009766d

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 125829119 61864960 8e Linux LVM

交互式查看和管理磁盘分区

常用指令

指令 作用 m 打印出菜单 p 打印出当前分区表 n 新建一个分区 d 删除一个分区 t 改变分区的属性,系统ID w 保存 q 不保存退出

示例

[root@localhost ~] # fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):m //m指令打印出菜单
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
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)

命令(输入 m 获取帮助):p //p指令打印出当前分区表

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0009766d

设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 125829119 61864960 8e Linux LVM

blkid

可以查看块设备属性信息

示例

[root@localhost ~]# blkid
/dev/sda1: UUID=”1003453c-ed08-492a-bac5-76fd0e006c5d” TYPE=”xfs”
/dev/sda2: UUID=”4zS7ZS-vwuG-OXJz-rvsT-zmn9-pszq-u5Wqd7″ TYPE=”LVM2_member”
/dev/sr0: UUID=”2017-09-06-10-51-00-00″ LABEL=”CentOS 7 x86_64″ TYPE=”iso9660″ PTTYPE=”dos”
/dev/mapper/centos-root: UUID=”dbfa8769-3674-4dca-9ea2-ce4d5d08a176″ TYPE=”xfs”
/dev/mapper/centos-swap: UUID=”cc343a9d-2526-43ec-ae59-a927a4c8e9ec” TYPE=”swap”
/dev/mapper/centos-home: UUID=”fe129d06-2d94-456a-b126-728f0c61d9db” TYPE=”xfs”

mkfs

创建文件系统(格式化)常用选项

选项

  • -t {ext2|ext3|ext4|xfs} 指定文件系统类型
  • -b {1024|2048|4096} 指定块 block 大小
  • -L ‘LABEL’ 设置卷标
  • -j ext3,相当于 -t mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i
  • -i 为数据空间中每多少个字节创建一个 inode;不应该小于block大小
  • -N 指定分区中创建多少个inode
  • -I 一个inode记录占用的磁盘空间大小,128—4096
  • -m 默认5%,为管理人员预留空间占总空间的百分比
  • -O FEATURE[,…] 启用指定特性-O ^FEATURE 关闭指定

示例

[root@localhost ~]# ls /sbin/mkfs* //查看当前系统支持哪些文件系统类型
/sbin/mkfs /sbin/mkfs.ext2 /sbin/mkfs.fat /sbin/mkfs.vfat
/sbin/mkfs.btrfs /sbin/mkfs.ext3 /sbin/mkfs.minix /sbin/mkfs.xfs
/sbin/mkfs.cramfs /sbin/mkfs.ext4 /sbin/mkfs.msdos
[root@localhost ~]# mkfs.xfs /dev/sdb1 //将sdb1格式化为XFS文件系统
meta-data=/dev/sdb3 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
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

文件系统检测和修复

fsck.FS_TYPE
fsck -t FS_TYPE
-a 自动修复
-r 交互式修复错误

mkswap

swap

特殊的文件系统,缓解内存不足,为了个别应为程序加 内存有点浪费

添加交换分区的空间

  • mkswap + 分区
  • swapon +分区 开启 -a 全部
  • swapoff +分区 关闭 -a 全部

[root@localhost ~]# mkswap /dev/sdb6 //将sdb6格式化为swap文件系统
正在设置交换空间版本 1,大小 = 6289404 KiB
无标签,UUID=2b59e021-35a5-489a-9450-849917a9850a
[root@localhost ~]# swapon -s //显示所有启用的交换分区,目前只显示系统原有的交换分区
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4194300 0 -1
[root@localhost ~]# swapon /dev/sdb6 //启用交换分区
[root@localhost ~]# swapon -s //此时查看,显示了刚刚启用的交换分区
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4194300 0 -1
/dev/sdb6 partition 6289404 0 -2
[root@localhost ~]# swapoff /dev/sdb6 //不使用后可以停用交换分区
[root@localhost ~]# swapon -s //查看所有交换分区,/dev/sdb6已不显示
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4194300 0 -1

lsblk

[root@localhost ~]# lsblk -d -o name,rota

查看当前硬盘是什么模式 固态 机械 1 机械 0 固态

NAME ROTA
sda 1
sr0 1

挂载与解挂载

mount

格式

mount [ -t 类型 ] 存储设备 挂载点目录 mount -o loop ISO镜像文件 挂载点目录

示例

[root@localhost data]# mount /dev/sdb1 /opt/aa //将sdb1挂载到aa目录下
[root@localhost ~]# df -h //查看磁盘情况,已成功挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 10G 4.9G 5.2G 49% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 0 183M 0% /run/user/0
tmpfs 183M 40K 183M 1% /run/user/1005
/dev/sr0 4.3G 4.3G 0 100% /run/media/Amy/CentOS 7 x86_64
/dev/sdb1 10G 33M 10G 1% /opt/aa

挂载规则

  • 一个挂载点同一时间只能挂载一个设备
  • 一个挂载点同一时间挂载了多个设备,只能看到最后
  • 一个设备的数据,其它设备上的数据将被隐藏
  • 一个设备可以同时挂载到多个挂载点
  • 通常挂载点一般是已存在空的目录

umount

格式

umount 存储设备位置
umount 挂载点目录

示例

[root@localhost opt]# umount /dev/sdb1 //将sdb1解除挂载
[root@localhostopt]# df -h //查看磁盘情况,已成功解挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 10G 4.9G 5.2G 49% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 9.1M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
tmpfs 183M 0 183M 0% /run/user/0
tmpfs 183M 40K 183M 1% /run/user/1005

永久挂载

需要将文件写入 /etc/fstab

UUID 可以确保唯一

示例

[root@localhost ~]# blkid //查看硬件设备的UUID /dev/sda1: UUID=”87263b93-1e10-49c6-a30c-2b80b6b17038″ TYPE=”xfs” /dev/sda2: UUID=”NOm6dB-M1Oe-2DBL-JyAF-p9by-VTLr-14MAfJ” TYPE=”LVM2_member” /dev/sdb1: UUID=”e0b714cd-c33e-42b2-a051-1e1f3333b4b7″ TYPE=”xfs” /dev/sdb5: UUID=”f9f897a8-ae5d-4ec3-a48f-33e2757213ae” TYPE=”xfs” /dev/sdb6: UUID=”2b59e021-35a5-489a-9450-849917a9850a” TYPE=”swap” /dev/sr0: UUID=”2017-09-06-10-51-00-00″ LABEL=”CentOS 7 x86_64″ TYPE=”iso9660″ PTTYPE=”dos” /dev/mapper/centos-root: UUID=”d0d8117f-e6af-46de-985e-910fafd9d4a2″ TYPE=”xfs” /dev/mapper/centos-swap: UUID=”8a01eff6-7570-42db-ba4d-a7ff11acbdb3″ TYPE=”swap”

[root@localhost ~]# vim /etc/fstab //修改配置文件 #将sdb1加入配置文件 UUID=e0b714cd-c33e-42b2-a051-1e1f3333b4b7 /data/aa xfs defaults 0 0

以 “/dev/mapper/centos-root / xfs defaults 0 0” 为例
– 字段1:设备名或设备卷标名、或设备的UUID(建议使用UUID,可使用lsbik命令查看)。

  • 字段2:文件系统的挂载点目录的位置。

  • 字段3:文件系统类型,如 XFS、swap 等。

  • 字段4:挂载参数,即 mount 命令”-o”选项后可使用的参数。例如,default、rw、ro、noexec 分别表示为默认参数、可读可写、只读、禁用执行程序。

  • 字段5:表示文件系统是否需要 dump 备份(dump是一个备份工具)。一般设为1时表示需要,设为0时将被dump忽略。

  • 字段6:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查, 1表示优先检查,2表示其次检查。根分区可设为1,其他分区设置为2。一般不进行检查,会影响系统性能。

磁盘分区完整步骤

第一步:检测并确认新硬盘

新加硬盘后,需要刷新磁盘接口,让系统识别新硬盘。命令如下:

[root@localhost ~]# echo “- – -” > /sys/class/scsi_host/host0/scan
[root@localhost ~]# echo “- – -” > /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo “- – -” > /sys/class/scsi_host/host2/scan
[root@localhost ~]# lsblk //查看块设备,已识别到新硬盘sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 14G 0 part
├─centos-root 253:0 0 10G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom

磁盘和文件系统

第二步:设置硬盘分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x8fd606b5 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n

磁盘和文件系统

Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-125829119,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB

磁盘和文件系统

命令(输入 m 获取帮助):N
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (20973568-125829119,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-125829119,默认为 125829119):+10G
分区 2 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):N
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (41945088-125829119,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119):+10G
分区 3 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):
命令(输入 m 获取帮助):N
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Using default response e
已选择分区 4
起始 扇区 (62916608-125829119,默认为 62916608):
将使用默认值 62916608
Last 扇区, +扇区 or +size{K,M,G} (62916608-125829119,默认为 125829119):+10G
分区 4 已设置为 Extended 类型,大小设为 10 GiB

命令(输入 m 获取帮助):W
The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root
253:0 0 38.3G 0 lvm /
├─centos-swap
253:1 0 2G 0 lvm [SWAP]
└─centos-home
253:2 0 18.7G 0 lvm /home
sdb 8:16 0 60G 0 disk
├─sdb1 8:17 0 10G 0 part
├─sdb2 8:18 0 10G 0 part
├─sdb3 8:19 0 10G 0 part
└─sdb4 8:20 0 1K 0 part
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64

第三步:为分区指定文件系统(格式化)

将/dev/sdb1 格式化为XFS文件系统——mkfs.xfs命令

[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=1

将/dev/sdb2 格式化为交换文件系统——mkswap命令

[root@localhost ~]# mkswap /dev/sdb2 //将sdb6格式化为swap文件系统
正在设置交换空间版本 1,大小 = 6289404 KiB
无标签,UUID=2b59e021-35a5-489a-9450-849917a9850a
[root@localhost ~]# swapon -s //显示所有启用的交换分区,目前只显示系统原有的交换分区
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4194300 0 -1
[root@localhost ~]# swapon /dev/sdb2 //启用交换分区
[root@localhost ~]# swapon -s //此时查看,显示了刚刚启用的交换分区
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4194300 0 -1
/dev/sdb2 partition 6289404 0 -2

[root@localhost ~]# swapoff /dev/sdb2 //不使用后可以停用交换分区
[root@localhost ~]# swapon -s //查看所有交换分区,/dev/sdb6已不显示
文件名 类型 大小 已用 权限
/dev/dm-1 partition 4194300 0 -1

第四步:挂载文件系统

新建/data目录,之后建子目录aa

方式一:使用mount命令一次性挂载

[root@localhost /]# mkdir /data //创建/data目录
[root@localhost /]# cd /data
[root@localhost data]# mkdir aa //在/data目录下创建子目录aa
[root@localhost data]# ls
aa
[root@localhost opt]# mount /dev/sdb1 /data/aa //将sdb1挂载到aa目录下
[root@localhost ~]# df -Th //查看磁盘情况并显示文件系统类型,可看到已成功挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 10G 4.9G 5.2G 49% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 183M 0 183M 0% /run/user/0
tmpfs tmpfs 183M 40K 183M 1% /run/user/1005
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/Amy/CentOS 7 x86_64
/dev/sdb1 xfs 10G 33M 10G 1% /opt/aa

方式二:永久挂载

[root@localhost ~]# blkid //查看硬件设备的UUID /dev/sda1: UUID=”87263b93-1e10-49c6-a30c-2b80b6b17038″ TYPE=”xfs” /dev/sda2: UUID=”NOm6dB-M1Oe-2DBL-JyAF-p9by-VTLr-14MAfJ” TYPE=”LVM2_member” /dev/sdb1: UUID=”e0b714cd-c33e-42b2-a051-1e1f3333b4b7″ TYPE=”xfs” /dev/sr0: UUID=”2017-09-06-10-51-00-00″ LABEL=”CentOS 7 x86_64″ TYPE=”iso9660″ PTTYPE=”dos” /dev/mapper/centos-root: UUID=”d0d8117f-e6af-46de-985e-910fafd9d4a2″ TYPE=”xfs” /dev/mapper/centos-swap: UUID=”8a01eff6-7570-42db-ba4d-a7ff11acbdb3″ TYPE=”swap” ​ [root@localhost ~]# vim /etc/fstab //修改配置文件 #将sdb1和sdb2加入配置文件 UUID=e0b714cd-c33e-42b2-a051-1e1f3333b4b7 /data/aa xfs defaults 0 0

Original: https://www.cnblogs.com/fengxia6/p/16735627.html
Author: 风夏呀
Title: 磁盘和文件系统

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577766/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 回溯法:算法思路以及相关流程图的绘制

    参考建模原文2020国赛B题参考文章1 回溯法介绍 深度优先搜索(缩写DFS):对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标…

    Linux 2023年6月14日
    080
  • 【Python】AttributeError: ‘Rotation’ object has no attribute ‘from_dcm’

    报错的代码如下: from scipy.spatial.transform import Rotation def dcm2euler(mats: np.ndarray, seq:…

    Linux 2023年6月13日
    060
  • 【前端】【探究】HTML input类型为file时如何实现自定义文本以更好的美化

    想到英语四级考了两次都没过,我觉得要多使用英文,所以本文使用英文书写。 本文讲述了遇到的问题,解决的思路,并讲述了解决方案,也许对你会有帮助。 Problem descriptio…

    Linux 2023年6月14日
    098
  • 好玩的免费GM游戏整理汇总

    前言 我所有架设的游戏发布和更新都会实时整理到本文 https://echeverra.cn/h5game , 建议收藏。 游戏全部 免费带 GM后台(可以免费充值发送游戏道具),…

    Linux 2023年6月7日
    094
  • 音频属性

    采样频率就是采用一段音频,做为样本,因为wav使用的是数码信号,它是用一堆数字来描述原来的模拟信号,所以它要对原来的模拟信号进行分析,我们知道所有的声音都有其波形,数码信号就是在原…

    Linux 2023年6月8日
    097
  • Java实现哈希表

    2.1、哈希冲突 冲突位置,把数据构建为链表结构。 装载因子=哈希表中的元素个数 / (散列表)哈希表的长度 装载因子越大,说明链表越长,性能就越低,那么哈希表就需要扩容,把数据迁…

    Linux 2023年6月14日
    078
  • Redis 配置文件

    http://blog.csdn.net/tonysz126/article/details/8280696/ 2.1 Redis配置文件 为了对Redis的系统实现有一个直接的认…

    Linux 2023年5月28日
    096
  • Windows server 2008 域控制器

    Windows的网络架构 Windows的网络架构大致分为: 工作组架构 域架构 工作组架构:工作组是由一组通过网络连接在一起的计算机组成,组内的计算机可以共享本机的文件,打印机等…

    Linux 2023年6月7日
    087
  • exec

    exec 函数 exec()函数通过运行其他程序来替换当前进程。 新程序启动后PID和老程序一样,就像两个程序接力跑,你的程序把进程交接给了新程序。 exec函数众多,可以分为两种…

    Linux 2023年6月7日
    088
  • 部署tomcat

    tomcat tomcat 一、tomcat是什么 二、tomcat部署 1.实现访问java测试网页 2.能够成功登录到tomcat首页中的host manager、server…

    Linux 2023年6月6日
    0106
  • Python subprocess的使用

    前言 部门内部存在大量代码使用Python去调用Shell或者JS脚本,因此重度依赖subprocess(使用Google的subprocess32),在使用subprocess的…

    Linux 2023年6月7日
    076
  • jmeter学习记录–05–Beanshell2

    学习beanshell时有不少的例子、遇到不少问题。在此记录下。 测试实例列表 A1:使用Beanshell请求作为测试请求 一个打包的Jar包,直接对其内的方法进行测试。 第一步…

    Linux 2023年5月28日
    096
  • 什么?Android上面跑Linux?

    前言 众所周知,现在程序员因为工作、个人兴趣等对各种系统的需求越来越大,部分人电脑做的还是双系统。其中,比较常见的有各种模拟器、虚拟机在windows上面跑Android、Linu…

    Linux 2023年5月27日
    081
  • kafka 在 zookeeper 中保存的数据内容

    转载请注明出处: 服务器上下载 kafka : wget https://archive.apache.org/dist/kafka/2.4.0/kafka_2.12-3.2.0….

    Linux 2023年6月14日
    083
  • centos7启动docker容器时提示Error response from daemon: Unknown runtime specified docker-runc

    记录centos7启动docker 过程 csharp;gutter:true; systemctl start docker 启动docker 程序docker start xx…

    Linux 2023年6月8日
    088
  • DNS 查询原理详解

    你可能会问,难道 DNS 服务器(比如 1.1.1.1)保存了世界上所有域名(包括二级域名、三级域名)的 IP 地址? 当然不是。DNS 是一个分布式系统,1.1.1.1 只是用户…

    Linux 2023年6月8日
    057
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球