Linux 系统磁盘挂载, 手动增加 swap 空间
挂载 / 卸载磁盘
前言
在前面学了磁盘的分区和格式化,那么格式化完成后,如何使用这些磁盘呢?
这就涉及到了挂载磁盘了。格式化后的磁盘其实是一个块设备文件,类型为 b。是不可以直接在里面写入数据的。
在挂载某个分区前,需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某个分区挂载到这个挂载点(目录)下,要再往这个目录写数据时,就都会写到该分区中。所以,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但一旦挂载上了,该目录以前的东西就看不到了(数据并没有丢失),除非卸载该分区
## 一,磁盘在不分区的情况下可以格式化吗?如下
[root@localhost ~]# fdisk /dev/sdb //进入磁盘分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p //打印当前磁盘信息
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x14b00984
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 83 Linux
命令(输入 m 获取帮助):d //删除sdb1分区
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):w //保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs.xfs -f /dev/sdb //格式化sdb磁盘《在没有分区的情况下》
meta-data=/dev/sdb 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
[root@localhost ~]# blkid /dev/sdb //查看格式化文件系统类型
/dev/sdb: UUID="8e0c9897-66b7-4d40-9602-31c58bb69266" TYPE="xfs"
## 二,使用 mount 命令磁盘挂载
- 命令语法
mount(选项)(参数)
- 命令描述
mount 命令用于加载文件系统到指定的加载点。此命令的最常用于挂载 cdrom,使我们可以访问 cdrom 中的数据,因为你将光盘插入 cdrom 中,Linux 并不会自动挂载,必须使用 Linux mount 命令来手动完成挂载。
- 命令选项
-a 安装在 /etc/fstab 文件中类出的所有文件系统。
-f 伪装 mount,作出检查设备和目录的样子,但并不真正挂载文件系统。
-n 不把安装记录在 /etc/mtab 文件中。
-r 将文件系统安装为只读。
-v 详细显示安装信息。
-w 将文件系统安装为可写,为命令默认情况。
-t < 文件系统类型 > 指定设备的文件系统类型,常见的有:
ext2 linux 目前常用的文件系统
msdos MS-DOS 的 fat,就是 fat16
vfat windows98 常用的 fat32
nfs 网络文件系统
iso9660 CD-ROM 光盘标准文件系统
ntfs windows NT/2000/XP 的文件系统
auto 自动检测文件系统
-o < 选项 > 指定挂载文件系统时的选项,有些也可写到在 /etc/fstab 中。常用的有:
defaults 使用所有选项的默认值(auto、nouser、rw、suid)
auto/noauto 允许 / 不允许以 –a 选项进行安装
dev/nodev 对 / 不对文件系统上的特殊设备进行解释
exec/noexec 允许 / 不允许执行二进制代码
suid/nosuid 确认 / 不确认 suid 和 sgid 位
user /nouser 允许 / 不允许一般用户挂载
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
remount 重新安装已经安装了的文件系统
三, 卸载磁盘挂载
- 使用 df 查看已挂载磁盘
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 18G 1.2G 17G 7% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 117M 81M 60% /boot
tmpfs 99M 0 99M 0% /run/user/0
- 把 /dev/sdb 磁盘挂载到 /mnt/ 目录下
[root@localhost ~]# mount /dev/sdb/ /mnt/ //挂载sdb磁盘
Try 'df --help' for more information.
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 18G 1.2G 17G 7% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 117M 81M 60% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb 10G 33M 10G 1% /mnt //可以看到已经挂载到了/mnt/下
- 使用 mount 命令查看挂载后的 sdb 详情
[root@localhost ~]# mount
//省略不重要的。。。。。。
/dev/sdb on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,noquota) //在最后一行可以看到sdb的详情。
- 卸载(在卸载挂载后的情况下,还是可以使用 mount 继续挂载的)
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls //进入mnt目录下之后可以看出里面什么都没有
[root@localhost mnt]# touch 1.txt 2.txt //创建1.txt和2.txt文件
[root@localhost mnt]# mkdir 23333 //创建23333目录
[root@localhost mnt]# ls
1.txt 23333 2.txt
[root@localhost mnt]# umount /dev/sdb //使用umount卸载磁盘
umount: /mnt:目标忙。 //因为我们在/mnt目录下所以卸载不了 《这种情况我们可以加一个参数 l 这样的话就可以卸载了》
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
[root@localhost mnt]# cd //退出/mnt/目录
[root@localhost ~]# umount /dev/sdb //卸载磁盘
Try 'df --help' for more information.
[root@localhost ~]# df -h //可以看出已经被卸载了。
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 18G 1.2G 17G 7% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 6.8M 486M 2% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 197M 117M 81M 60% /boot
tmpfs 99M 0 99M 0% /run/user/0
## 四, 手动增加 swap 空间
“dd”:用于操作磁盘的命令(可读可写) if:读取位置 of:写入位置 bs:=block size 块大小
count:磁盘大小(此处 =100*1M)
[root@adai002 ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100 手动创建一个新分区
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,5.72931 秒,18.3 MB/秒
[root@adai002 ~]# du -sh /tmp/newdisk
100M /tmp/newdisk
[root@adai002 ~]# mkswap /tmp/newdisk 格式化该swap分区
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=d42e907a-aae0-4d5f-bf58-586fac415f48
[root@adai002 ~]# free -m
total used free shared buff/cache available
Mem: 984 114 626 6 244 706
Swap: 2047 0 2047
[root@adai002 ~]# swapon /tmp/newdisk 挂载到原swap分区
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@adai002 ~]# free -m
total used free shared buff/cache available
Mem: 984 114 626 6 244 707
Swap: 2147 0 2147
[root@adai002 ~]# chmod 0600 /tmp/newdisk 更改权限以保安全
[root@adai002 ~]# swapoff /tmp/newdisk 卸载分区
[root@adai002 ~]# free -m
total used free shared buff/cache available
Mem: 984 114 626 6 244 707
Swap: 2047 0 2047
[root@adai002 ~]# rm -f /tmp/newdisk