第7章 Linux磁盘管理—磁盘格式化和挂载
sinye56 2024-10-28 19:17 9 浏览 0 评论
提醒:本文为合集文章,后续会持续更新!
关注我,每日提升!
7.3 格式化磁盘分区
磁盘分区虽然分好区了,但暂时还不能用,我们还须对每一个分区进行格式化。所谓格式化,其实就是安装文件系统,Windows下的文件系统有FAT32和NTFS。前面章节中,阿铭介绍过Rocky 8以XFS作为默认的文件系统,但我们依然可以给它指定ext3或者ext4格式。
7.3.1 命令mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4和mkfs.xfs
当用man命令查询前4个命令的帮助文档时,你会发现我们看到的是同一个帮助文档,这说明这4个命令是一样的。下面我们以mke2fs命令为例进行介绍。
mke2fs命令常用的选项如下所示。
- -b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以及4096B。
- -i:表示设定inode的大小。
- -N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。
- -c:表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。
- -L:表示预设该分区的标签(label)。
- -j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。
- -t:用来指定文件系统的类型,可以是ext2、ext3 ,也可以是ext4。示例命令如下:
# mke2fs -t ext4 /dev/sda5
mke2fs 1.45.6 (20-Mar-2020)
创建含有 256000 个块(每块 4k)和 64000 个inode的文件系统
文件系统UUID:15043836-eee8-4d62-81f1-6e6fab5b6304
超级块的备份存储于下列块:
32768, 98304, 163840, 229376
正在分配组表:完成
正在写入inode表:完成
创建日志(4096 个块)完成
写入超级块和文件系统账户统计信息: 已完成
指定文件系统格式为ext4时,命令mke2fs -t ext4 /dev/sdb5等同于mkfs.ext4 /dev/sdb5。然而,mke2fs并不支持把分区格式化成XFS类型,而只能使用mkfs.xfs,示例命令如下:
# mke2fs -t xfs /dev/sda6
mke2fs 1.45.6 (20-Mar-2020)
你的mke2fs.conf文件中没有定义类型 xfs 的文件系统。
正在终止...
[root@aminglinux01 ~]# mkfs.xfs /dev/sda6
meta-data=/dev/sda6 isize=512 agcount=4, agsize=64000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=256000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1566, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
在上例中,你是否注意到“块大小=4096”或者bsize=4096这项指标呢?这里涉及“块”的概念。磁盘在格式化的时候,会预先规定好每一个块的大小,然后再把所有的空间分割成一个一个的小块。存数据的时候,也是一个块一个块地写入。如果你的磁盘里存储的都是特别小的文件,比如说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 2022
Proceed anyway? (y,N) y
mke2fs: 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/sda6
meta-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=1
data = bsize=8192 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=8192 ascii-ci=0, ftype=1
log =internal log bsize=8192 blocks=1128, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=8192 blocks=0, rtextents=0
通过上面的小试验可以发现,如果指定块大小为8192B,会提示块值设置得太大了,我们可以直接输入y强制格式化。你还可以尝试指定其他数字,但需要是1024的指数倍(1024、2048、4096或者8192)。其中,mkfs.xfs用法有点特殊,你需要注意和mke2fs区分。另外,还可以给分区指定标签,如下所示:
mke2fs -L TEST -t ext4 /dev/sda5
mke2fs 1.45.6 (20-Mar-2020)
/dev/sda5 有一个 ext4 文件系统
创建于 Wed Oct 26 22:00:36 2022
Proceed 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/sda5
TEST
# e2label /dev/sda5 TEST123
# e2label /dev/sda5
TEST123
7.4 挂载/卸载磁盘
前面我们讲到了磁盘的分区和格式化,那么格式化完成后,如何使用这些磁盘呢?这就涉及挂载磁盘了。格式化后的磁盘其实是一个块设备文件,类型为b。也许你会想,既然这个块文件就是那个分区,那么直接在那个文件中写数据不就可以写入那个分区了吗?这当然不行。
在挂载某个分区前,需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某个分区挂载到这个挂载点(目录)下,要再往这个目录写数据时,就都会写到该分区中。所以,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但一旦挂载上了,该目录下以前的东西就看不到了(数据并没有丢失),除非卸载该分区。
7.4.1 命令mount
如果不加任何选项,直接运行mount命令,会显示如下信息:
# mount
sysfs 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 0
UUID=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:表示按只读权限挂载。
- rw:表示按可读可写权限挂载。
- exec/noexec:表示允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,否则将无法使用系统,甚至连mount命令都无法使用。
- user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全,请用nouser。
- suid/nosuid:表示允许/不允许分区有suid属性,一般设置nosuid。
- usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度。
- 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/dir2
mkdir: 无法创建目录"/newdir/dir2": 只读文件系统
由于-o选项指定了ro参数,所以该分区只读了。通过mount命令可以看到,/dev/sda5也有ro参数,示例命令如下:
# mount |grep sda5
/dev/sda5 on /newdir type ext4 (ro,relatime,sync)
下面阿铭重新挂载,让它恢复读写,如下所示:
# mount -o remount /newdir #这里可以省略掉磁盘分区,只写挂载点
# 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/fstab
UUID="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/local
mount 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 /newdir
umount: /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/newdisk
mkswap: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
正在设置交换空间版本 1,大小 = 1024 MiB (1073737728 个字节)
无标签,UUID=df739399-cb11-4a92-b8db-9e94e257b815
文件格式化后,就可以挂载使用了,如下所示:
# free -m
total used free shared
buff/cache available
Mem: 1806 235 293 8 1276 1413
Swap: 4095 0 4095
# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。 //虽然提示不安全,但实际已经挂载上
# free -m
total used free shared
buff/cache available
Mem: 1806 236 293 8 1276 1412
Swap: 5119 0 5119
前后对比一下swap分区,我们发现多了1024MB的空间。其中,free命令用来查看内存的使用情况,-m选项表示以MB为单位显示,阿铭还会在后续章节详细介绍该命令。
相关推荐
- Linux两种光驱自动挂载的方法
-
环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...
- linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握
-
虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...
- Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)
-
mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...
- 在Linux中如何设置自动挂载特定文件系统(示例)
-
Linux...
- Linux环境中的绑定挂载(bind mount)
-
简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...
- Linux挂载CIFS共享 临时挂载 1. 首先
-
如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...
- Linux 硬盘挂载(服务器重启自动挂载)
-
1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...
- linux 挂载磁盘
-
在Linux中挂载硬盘的步骤如下:...
- 笨小猪教您Linux磁盘挂载
-
本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...
- Linux 磁盘挂载和docker安装命令
-
本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...
- Linux设置开机自动挂载分区
-
有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...
- 在linux挂载一个新硬盘的完整步骤
-
以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...
- Linux系统如何挂载exFAT分区
-
简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...
- Linux系统挂载硬盘
-
fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...
- WSL2发布,如何在Win10中挂载Linux文件系统
-
WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- 关闭防火墙linux (53)