首页 >> 清理设备

第7章 Linux磁盘负责管理—磁盘格式化和挂载

清理设备 2023-05-08 12:17:29

将近据,比如说1KB或者2KB,阿铭敦促你在驱动器读取时以以外块计算小一点。ext4缓存的当前块不等为4096B(即4KB)。在驱动器时,可以以以外块不等为1024B、2048B或者4096B(它们是变为倍增高的)。虽然驱动器时可以以以外块不等超过4096B,但一旦超过4096B,就只能正常挂架。那么,如何以以外块不等呢?请求注意阿铭预览一下具体操作分析方法,如下附注:

# mke2fs -t ext4 -b 8192 /dev/sda5忠告:块不等 8192 在很多系统对中的不需用。mke2fs 1.45.6 (20-Mar-2020) /dev/sda5 有一个 ext4 缓存 创建者于 Wed Oct 26 21:58:28 2022Proceed anyway? (y,N) ymke2fs: 8192个字符的块对于系统对来说实在大(仅次于为 4096)Proceed anyway? (y,N) y忠告:8192个字符的块对于系统对来说实在大(仅次于为 4096),但即便如此强行展开操作创建者掺入 128000 个块(每块 8k)和 64000 个inode的缓存缓存UUID:eac5dc07-01db-4367-9200-7c3457048fe3超级块的离线读取于下列块: 65528早就平均分配组所列: 完毕变为早就读到入inode所列: 完毕变为创建者存档(4096 个块)完毕变为读到入超级块和缓存帐号统计资讯: 完毕变为

再一驱动器sdb6时,则会预设这个一区早就驱动器过

# mkfs.xfs -b size=8192 /dev/sda6 mkfs.xfs: /dev/sda6 appears to contain an existing filesystem (xfs).mkfs.xfs: Use the -f option to force overwrite.

加上-f可选择需

# mkfs.xfs -b size=8192 -f /dev/sda6meta-data=/dev/sda6 isize=512 agcount=4, agsize=32000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1data = bsize=8192 blocks=128000, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=8192 ascii-ci=0, ftype=1log =internal log bsize=8192 blocks=1128, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=8192 blocks=0, rtextents=0

通过上头的小试验车可以断定,如果以以外块不等为8192B,则会预设块值设为得实在大了,我们可以这样一来输入y强行驱动器。你还可以尝试以以外其他将近字,但非常需要是1024的比率倍(1024、2048、4096或者8192)。其中的,mkfs.xfs用法却是相同,你非常需要注意和mke2fs区分。另以外,还可以给一区以以外页面,如下附注:

mke2fs -L TEST -t ext4 /dev/sda5mke2fs 1.45.6 (20-Mar-2020) /dev/sda5 有一个 ext4 缓存 创建者于 Wed Oct 26 22:00:36 2022Proceed anyway? (y,N) y创建者掺入 256000 个块(每块 4k)和 64000 个inode的缓存缓存UUID:7af471e2-da5a-4897-be4e-049c990f2d9c超级块的离线读取于下列块: 32768, 98304, 163840, 229376早就平均分配组所列: 完毕变为早就读到入inode所列: 完毕变为创建者存档(4096 个块)完毕变为读到入超级块和缓存帐号统计资讯: 完毕变为

这从前我们可以应应用于-L可选择来以以外页面。页面则会在挂架读取时应应用于,也可以读到入配置元将近据,这个阿铭先行前简介。

关于驱动器的这部分具体内容,阿铭敦促你,除非有需求,否则不非常需要以以外块不等。也就是说,你只非常需要记住-t和-L这两个可选择需。

7.3.2 指令e2label

该指令应用于发送给或简化一区的页面,它只全力支持ext文件的缓存,而不全力支持XFS缓存。这个指令阿铭很少应应用于,你只要了解一下需。举例来说指令如下:

# e2label /dev/sda5TEST# e2label /dev/sda5 TEST123# e2label /dev/sda5TEST123

7.4 挂架/装载读取

在此之前面我们谈到了读取的一区和驱动器,那么驱动器完毕变为后,如何应应用于这些读取呢?这就关的挂架读取了。驱动器后的读取实际上是一个块电源元将近据,各种类型为b。不实在可能你则会想,既然这个块元将近据就是那个一区,那么这样一来在那个元将近据中的读到原始将近据不就可以读到入那个一区了吗?这当然不行。

在挂架某个一区在此之前,非常需要先行确立一个挂架点,这个挂架点是以参考资料的形式再次出现的。一旦把某个一区挂架到这个挂架点(参考资料)下,要于是又往这个参考资料读到原始将近据时,就都则会读到到该一区中的。所以,在挂架该一区在此之前,挂架点(参考资料)下必须是个空参考资料。实际上参考资料不为空非常受到影响所挂架一区的应应用于,但一旦挂架上了,该参考资料下以在此之前的从前就看到了(原始将近据并没丢失),除非装载该一区。

7.4.1 指令mount

如果不加任何可选择,这样一来试运行mount指令,则会结果显示如下资讯:

# mountsysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)devtmpfs on /dev type devtmpfs (rw,nosuid,size=897764k,nr_inodes=224441,mode=755)securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)none on /sys/kernel/tracing type tracefs (rw,relatime)configfs on /sys/kernel/config type configfs (rw,relatime)/dev/mapper/rl-root on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)mqueue on /dev/mqueue type mqueue (rw,relatime)hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)debugfs on /sys/kernel/debug type debugfs (rw,relatime)systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=43,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=22907)/dev/nvme0n1p1 on /boot type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=183320k,mode=700)

反向的资讯量却是大,大家先行无需关心这些具体内容的意涵。应应用于这个指令,可以发送给当在此之前系统对早就挂架的所有一区、一区缓存的各种类型、挂架点及一些可选择等资讯。如果想其实某个已挂架一区的缓存各种类型,这样一来用mount指令发送给需。而未挂架的一区,怎么看呢,大家可以应应用于blkid指令发送给,后面则会谈到它。请求注意我们先行确立一个空参考资料,然后在参考资料从前建一个空白文件。举例来说指令如下:

# mkdir /newdir# touch /newdir/newfile.txt# ls /newdir/newfile.txt

然后把居然驱动器的/dev/sda5挂架到/newdir上,如下附注:

# mount /dev/sda5 /newdir/# ls /newdir/lost+found# df -h |grep -v tmpfs缓存 用量 已用 需用 已用% 挂架点/dev/mapper/rl-root 17G 6.6G 11G 39% //dev/nvme0n1p1 1014M 194M 821M 20% /boot/dev/sda5 969M 2.5M 900M 1% /newdir

把/dev/sda5挂架到/newdir后,这样一来在/newdir下的newfile.txt就看到了,通过指令df -h指令可以发送给刚刚挂架的一区。

我们也可以应应用于LABEL的方式挂架一区,如下附注:

# umount /newdir/# df -h |grep -v tmpfs缓存 用量 已用 需用 已用% 挂架点/dev/mapper/rl-root 17G 6.6G 11G 39% //dev/nvme0n1p1 1014M 194M 821M 20% /boot# mount LABEL=TEST123 /newdir# df -h |grep -v tmpfs缓存 用量 已用 需用 已用% 挂架点/dev/mapper/rl-root 17G 6.6G 11G 39% //dev/nvme0n1p1 1014M 194M 821M 20% /boot/dev/sda5 969M 2.5M 900M 1% /newdir

本例中的比如说了umount指令,这个指令是用来装载读取一区的,阿铭先行前简介。

mount指令近似于的可选择有-a、-t和-o。在简介-a可选择在此之前,我们非常需要先行了解一下/etc/fstab这个元将近据。

7.4.2 /etc/fstab配置元将近据

我们先行来发送给一下/etc/fstab元将近据的具体内容,如下附注:

# cat /etc/fstab## /etc/fstab# Created by anaconda on Fri Jun 3 19:18:31 2022## Accessible filesystems, by reference, are maintained under '/dev/disk/'.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.## After editing this file, run 'systemctl daemon-reload' to update systemd# units generated from this file.#/dev/mapper/rl-root / xfs defaults 0 0UUID=21f78c94-6652-406f-9f3a-57bd1cdc719f /boot xfs defaults 0 0/dev/mapper/rl-swap none swap defaults 0 0

这个元将近据中的结果显示了系统对开启时非常需要挂架的各个一区,请求注意阿铭简单描述一下各列的意涵。

第1列就是一区的上标,可以读到一区的LABEL、一区的UUID(等则会阿铭则会着重讲一下这个内涵),也可以读到一区名(比如:/dev/sda1)。第2列是挂架点,即要挂架到的参考资料名。第3列是一区的文件。第4列是mount的一些挂架常量。一般可能下,这样一来读到defaults需。第5列的将近字暗示确实被dump离线。1暗示离线,0暗示不离线。第6列的将近字暗示开机时确实自检读取。1和2都暗示探测,0暗示不探测。自检时,1比2优先行级高,所以先行探测1,于是又探测2。如果有多个一区非常需要开机探测,就都正因如此2,1探测完毕后则会同时探测2。在CentOS 7/Rocky 8系统对从前,所有一区中的该列的值都是0。

请求注意阿铭着重简介第4列的近似于可选择。

async/sync:async暗示与读取和缓存不并行。系统对每隔一段时间就则会把缓存原始将近据读到入读取中的,而sync则则会时时并行缓存和读取中的的原始将近据。auto/noauto:暗示开机自动挂架/不自动挂架。default:暗示按照大多将近永久缓存的当前值设为挂架非常一定,它包含了rw、suid、dev、 exec、auto、nouser和async。ro:暗示按null管辖权挂架。rw:暗示按可读可读到管辖权挂架。exec/noexec:暗示强制/不强制软件包监督,但千万不用把杆子一区挂架为noexec,否则将无法应应用于系统对,甚至连mount指令都无法应应用于。user/nouser:暗示强制/不强制root以外的其他浏览器挂架一区。为了安全,请求用nouser。suid/nosuid:暗示强制/不强制一区有suid属性,一般设为nosuid。usrquota:暗示开启浏览器的读取利息模式。读取利息则会针对浏览器Type-B他们应应用于的读取利息。grquota:暗示开启各别的读取利息模式。

学时完毕了/etc/fstab,我们就可以自己简化这个元将近据,增高几天后来挂架增添一区。例如,阿铭增高了这样几天后:

LABEL=TEST123 /newdir ext4 defaults 0 0

然后装载之在此之前早就挂架的/dev/sda5,如下附注:

# umount /dev/sda5# df -h |grep -v tmpfs缓存 用量 已用 需用 已用% 挂架点/dev/mapper/rl-root 17G 6.6G 11G 39% //dev/nvme0n1p1 1014M 194M 821M 20% /boot

应应用于指令df -h发送给,则会断定早就变为功装载/dev/sdb5。请求注意监督指令mount -a:

# mount -a# df -h |grep -v tmpfs缓存 用量 已用 需用 已用% 挂架点/dev/mapper/rl-root 17G 6.6G 11G 39% //dev/nvme0n1p1 1014M 194M 821M 20% /boot/dev/sda5 969M 2.5M 900M 1% /newdir

应应用于指令df -h发送给,则会断定多出一个元将近据/dev/sdb5挂架到了/newfir下,这就是mount -a指令监督的结果。这个-a可选择则会把/etc/fstab中的再次出现的所有读取一区挂架上。除了-a可选择以外,还有两个近似于的可选择。

-t可选择:用来以以外挂架的一区各种类型,当前不以以外,则会自动识别。-o可选择:用来以以外挂架的一区有哪些特性,即上头/etc/fstab配置元将近据中的第4列的那些。这个可选择阿铭偶尔应应用于,举例来说指令如下:# mkdir /newdir/dir1# mount -o remount,ro,sync /dev/sda5 /newdir# mkdir /newdir/dir2mkdir: 无法创建者参考资料"/newdir/dir2": null缓存

由于-o可选择以以外了ro常量,所以该一区null了。通过mount指令可以看到,/dev/sda5也有ro常量,举例来说指令如下:

# mount |grep sda5/dev/sda5 on /newdir type ext4 (ro,relatime,sync)

请求注意阿铭再一挂架,让它恢复原读读到,如下附注:

# mount -o remount /newdir #这从前可以省略掉读取一区,null到挂架点# mkdir /newdir/dir2# ls /newdir/dir1 dir2 lost+found

7.4.3 指令blkid

阿铭在日常的运维工作中的察觉到过这样的可能,对讲机链接上新装了两块读取:读取a(在链接上结果显示为sdc)和读取b(在链接上结果显示为sdd)。有一次阿铭把这两块读取都手脚了,之后于是又再一插上,重启的电源,结果读取编号被调换了,即读取a结果显示为sdd,读取b结果显示为sdc(这是因为阿铭把读取插错了插槽)。

我们其实挂架读取是通过/dev/sda1这样的一区英文名字来挂架的,如果该一区先行在此之前已自组到/etc/fstab中的,系统对开启后则则会挂架错一区。那么,怎样可能会这样的可能发生呢?这就比如说了UUID。我们可以通过blkid指令赚取各一区的UUID,如下附注:

# blkid/dev/sda5: LABEL="TEST123" UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3d19a658-05"/dev/nvme0n1p1: UUID="21f78c94-6652-406f-9f3a-57bd1cdc719f" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="91dd1aed-01"/dev/nvme0n1p2: UUID="wFTzNH-yNbZ-hP00-mRUH-sILl-nbcq-oAWzt3" TYPE="LVM2_member" PARTUUID="91dd1aed-02"/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-14-09-30-59-00" LABEL="Rocky-8-5-x86_64-dvd" TYPE="iso9660" PTUUID="6b8b4567" PTTYPE="dos"/dev/mapper/rl-root: UUID="cbb1e131-d2a3-4b62-a1fe-b1172e295101" BLOCK_SIZE="512" TYPE="xfs"/dev/mapper/rl-swap: UUID="c05b4dde-37bf-48d9-b9ee-a51f1c15d027" TYPE="swap"/dev/sda6: UUID="aa787ecd-eb79-4b52-92fa-e4d594fb3ff8" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="3d19a658-06"/dev/nvme0n1: PTUUID="91dd1aed" PTTYPE="dos"

这样可以获得全部读取一区的UUID。如果驱动器时以以外了LABEL,则该指令也则会结果显示LABEL值,缓存的各种类型也则会结果显示。当然,这个指令后面也可以以以外检索哪个一区,举例来说指令如下:

# blkid /dev/sda5/dev/sda5: LABEL="TEST123" UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3d19a658-05"

获得UUID后,我们如何应应用于它呢?用法如下附注:

# umount /newdir# mount UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" /newdir

UUID也是全力支持读到入到/etc/fstab中的的,举例来说指令如下:

# tail -1 /etc/fstabUUID="7af471e2-da5a-4897-be4e-049c990f2d9c" /newdir ext4 defaults 0 0

如果想让某个一区在开机后自动挂架,有两个适时可以实现:一是在/etc/fstab中的掺入几天后,如譬如说中的那行;二是把挂架指令读到到/etc/rc.d/rc.local元将近据中的去,系统对开启后则会监督这个元将近据中的的指令。只要你把想要开机开启的指令统统读到入到这个元将近据中的(这样一来摆在仍要)需。阿铭偶尔把挂架的指令摆在该元将近据的仍要几天后,举例来说指令如下:

# cat /etc/rc.local#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/localmount UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" /newdir

有的朋友可能则会察觉到这样的可能,把指令读到入/etc/rc.d/rc.local元将近据从前,却并没开机监督,这很有可能是因为系统对并没找到那个指令。所以,为了可能会此类关键问题,阿铭敦促你,以后读到入到该元将近据的指令,要应应用于绝对路径,比如本例中的的mount应该读到变为/usr/bin/mount。更换完毕/etc/rc.d/rc.local元将近据后,还非常需要一步操作:

# chmod a+x /etc/rc.d/rc.local

这是因为,在Rocky 8系统对,该元将近据当前没监督管辖权。以上两种分析方法所选其一,阿铭简介第2种分析方法实际上也是告诉你:如何让一些操作行为随系统对开启而自动监督。另以外,阿铭敦促你在挂架读取一区时,尽量应应用于UUID或者LABEL这两种分析方法。

7.4.4 指令umount

在上头的小试验车中的,阿铭多次比如说umount指令。这个指令后面可以跟挂架点,也可以跟一区名(如/dev/sda1),但是不可以跟LABEL和UUID。举例来说指令如下:

# umount /dev/sda5# mount UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" /newdir# umount /newdir# mount UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" /newdir

umount指令的-l可选择非常有益。有时候你则会察觉到只能装载的可能,如下附注:

# umount /newdirumount: /newdir:最终目标忙。 (有些可能下通过 lsof(8) 或 fuser(1) 可以找到有关应应用于该电源的的网络的有益资讯)

只能装载是因为当在此之前参考资料还在装载的一区上。解决这个关键问题的适时有两种:一是离开到其他参考资料;二是应应用于umount指令的-l可选择,举例来说指令如下:

# umount -l /newdir# df -h |grep -v tmpfs缓存 用量 已用 需用 已用% 挂架点/dev/mapper/rl-root 17G 6.6G 11G 39% //dev/nvme0n1p1 1014M 194M 821M 20% /boot

7.5 确立一个swap元将近据增高真实世界缓存

装有系统对时我们就接触了swap指令,它类似于Windows的真实世界缓存,一区时一般以以外真实世界缓存的不等为实质缓存的2倍。如果你的实质缓存超过4GB,那么划分8GB给真实世界缓存就足够日常交换了。如果容察觉到了真实世界缓存不够用的可能,就必须增高一个真实世界读取,因为我们不可能再一给读取一区。增高真实世界读取的基本思路是:确立swapfile→驱动器为swap文件→开业该真实世界读取。

首先行,确立swapfile,如下附注:

# dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024记录了1024+0 的读入记录了1024+0 的读到出1073741824个字符(1.1 GB)已复制,6.36177 秒,169 MB/秒

dd指令阿铭偶尔比如说,所以请求你也要掌握它的应应用于分析方法:用if以以外源(一般是读到/dev/zero,它是UNIX系统对特有的一个元将近据,它可以源源不断地提供“0”),of以以外最终目标元将近据,bs非常一定块的不等,count非常一定块的使用量。bs和count这两个常量不得不了最终目标元将近据的不等,即最终目标元将近据不等=bs*count。上头的举例来说中的,阿铭用dd指令确立一个不等为1.1GB的元将近据,请求注意将它驱动器为swap文件,指令如下:

# mkswap -f /tmp/newdiskmkswap: /tmp/newdisk:不安全的管辖权 0644,敦促应应用于 0600。早就设为交换室内空间完整版 1,不等 = 1024 MiB (1073737728 个个字符)无页面,UUID=df739399-cb11-4a92-b8db-9e94e257b815

元将近据驱动器后,就可以挂架应应用于了,如下附注:

# free -m total used free shared buff/cache availableMem: 1806 235 293 8 1276 1413Swap: 4095 0 4095# swapon /tmp/newdisk

swapon: /tmp/newdisk:不安全的管辖权 0644,敦促应应用于 0600。 //虽然预设不安全,但实质早就挂架上

# free -m total used free shared buff/cache availableMem: 1806 236 293 8 1276 1412Swap: 5119 0 5119

在此之前后对比一下swap一区,我们断定多了1024MB的室内空间。其中的,free指令用来发送给缓存的应应用于可能,-m可选择暗示以MB为其单位结果显示,阿铭还则会在全面性各集详述简介该指令。

闹肚子吃什么能好点
宝宝厌食不爱吃饭怎么办
腰疼吃什么药物能缓解
肠胃炎吃什么药好使
抗痛风药
友情链接