您的位置:首页 > 运维架构 > Linux

Linux学习第十七篇--设置开机挂载和建立swap

2017-08-04 00:00 176 查看

前言

在上一篇博客中,我们聊到了可以使用文件系统的label来挂载,那么如果我们想要修改一个文件系统的label怎么办?难道要重新格式化文件系统吗?

这一部分属于补充部分,如果不感兴趣,可以直接跳到正文哟.

修改文件系统的label

linux中有一个命令可以直接修改文件系统的label--e2label.

e2label命令只有一个功能,就是修改ext系列文件系统的label.

其使用格式如下:e2label 装置文件 新的标签名称

额,就是这么简单粗暴...

调整文件系统参数

除了e2label命令外,tune2fs命令也可以修改文件系统的label,而且其功能更加强大.

tune2fs命令用于调整文件系统的参数.他的可选项也挺多的,个人感觉对于像我这种学linux是因为乐趣的人来说,比较有用的选项应该是下面这几个:

-f选项,加上该选项,即使e2label命令出错,也依然会执行完毕.

-g,设置可以访问系统保留区的用户组.

-j,添加日志文件系统到该文件系统内.

-l,列出当前文件系统superblock的内容,以及当前可通过改程序设置的参数.

-u,设置可以访问文件保留区的用户.

当然这个命令还有一些其他的参数,但是嘛...感觉用不着,就不写了...啧啧...我是不是开始浮躁了...

获取or设置硬盘参数

警告!警告!嘟嘟嘟嘟~~~

这个命令慎用!!!

这个命令慎用!!!

这个命令慎用!!!

重要的事情说三遍!!!

接下来我们学习的这个命令可以用来获取或者配置硬盘的参数--hdparm(这个命令在centos7需要安装).

为了避免误操作,这里只写出部分不会影响硬盘的选项.

-g选项,显示驱动器物理位置.

-h选项,显示简要的实用信息.

-i选项,显示引导驱动器时获得的识别信息.

-v选项,显示所有的设置.

-T选项,显示不存取磁盘直接读取缓存数据的速度.

-t选项,显示不适用缓存的读取速度.

注意区分-T和-t.

设定开机挂载

在前面的学习中,我们已经学会了如何挂载和移除文件系统,现在我们学习一下如何开机挂载文件系统.

在我们之前学习mount和umount命令的时候,多次提到了一个文件/etc/fstab.

在文件中配置的文件系统将会被开机挂载.

UUID=cf632ca5-4a1a-4da4-9deb-cb472d5b8a83 /                       ext4    defaults        1 1
这是我配置文件的信息,因为我只一块云硬盘,所以这里只有一条数据.

我们就可以看到这条数据大致可以分为六个部分.

UUID=cf632ca5-4a1a-4da4-9deb-cb472d5b8a83 装置文件(感觉叫驱动文件也不错)名称,或者UUID,或者lable等这个参数用来定位文件系统

/                                 挂载点,这个没什么好说的.

ext4 			          文件系统类型


defaults                          文件系统的参数,就是我们上一篇说的读写同步问题,只读/读写等
1				  能否被dump指令备份,0表示不能备份,1表示可以备份.
1				  开机时,是否以fsck来校验文件系统是否完整,0表示不校验,1表示校验.

[/code]

.所以,如果,假设我们需要设置/dev/sda5开机装载的话,可以在该文件中添加.

/dev/sda5 / default ext4 1 1

然后就ok了.

挂载镜像文件/其他大文件

这个才是我们今天学习的重点之一,加入我们搞了一个镜像文件(*.iso),我们总不能把他刻录成光盘,或者使用工具刻录到U盘等设备上再去使用里面的数据吧,

略微有点不切实际,那么我们应该样直接访问镜像文件里面的数据呢.

我们可以直接使用命令mount -o loop 镜像文件 挂载点 的形式来挂载镜像文件.

同样,如果我们在分区完成后,忽然间想加一个分区,但是又没有了空闲的内容,我们可以使用挂载大文件的方式来实现伪分区.

具体的步骤大概如下:

第一步,建立一个大文件,

使用下面命令建立一个超大空文档.

dd if=/dev/zero of=/tmp/panda/bigfile bs=1M count=1024
执行这个命令,可能会耗费一旦时间.我们解释一下这条命令,

dd命令用于转换和copy文件.他每次从输入文件读取指定大小的数据,然后写到输出文件中.

其中if选项表示输入文件.of表示输出文件,bs表示每次读取的数据大小.count表示读取的次数.

所以上面的目的就是建立一个1GB的空文件.

OK,命令执行完毕.

[root@iZwz92os3ijinexllkh4f6Z panda]# dd if=/dev/zero of=/tmp/panda/bigfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 17.6851 s, 60.7 MB/s
我们查看一下目录下面是不是有了该文件

[root@iZwz92os3ijinexllkh4f6Z panda]# ll -h
total 1.1G
-rw-r--r-- 1 root root 1.0G Jun 21 22:55 bigfile
ok.我们已经创建了一个空的文件

[root@iZwz92os3ijinexllkh4f6Z panda]# #Ok,我们已经创建了一个空文件.
[root@iZwz92os3ijinexllkh4f6Z panda]# #下面我们格式化这个空文件.
[root@iZwz92os3ijinexllkh4f6Z panda]# mkfs -t ext4 /tmp/panda/bigfile
mke2fs 1.42.9 (28-Dec-2013)
/tmp/panda/bigfile is not a block special device.
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

[root@iZwz92os3ijinexllkh4f6Z panda]# #然后使用mount -o loop 挂载该文件
[root@iZwz92os3ijinexllkh4f6Z panda]# #但是实现我们需要创建一个挂载点
[root@iZwz92os3ijinexllkh4f6Z panda]# mkdir /tmp/panda/mountpoint
[root@iZwz92os3ijinexllkh4f6Z panda]# mount -o loop /tmp/panda/bigfile  /tmp/panda/mountpoint/
[root@iZwz92os3ijinexllkh4f6Z panda]# #ok,然后我们看一下是否挂载成功
[root@iZwz92os3ijinexllkh4f6Z panda]# df -h /tmp/panda/mountpoint/
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0      976M  2.6M  907M   1% /tmp/panda/mountpoint


ok,挂载成功.

建立内存置换空间(SWAP)



我们通过之前的学习已经知道了swap的作用,此处就不在赘述.

我们先了解一下建立内存置换空间的步骤.

第一步,先建立一个分区.

第二步,格式化swap格式.

第三步,启动该swap

听起来很简单的样子,因为我没有空闲的空间建立swap,所以此处使用刚才学过的大文件方式来模拟分区.

[root@iZwz92os3ijinexllkh4f6Z panda]# #首先我们建立一个大文件,用作伪分区
[root@iZwz92os3ijinexllkh4f6Z panda]# dd if=/dev/zero of=/tmp/panda/swapDemo bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 18.8586 s, 56.9 MB/s
[root@iZwz92os3ijinexllkh4f6Z panda]# #然后我们修改该文件的权限为600
[root@iZwz92os3ijinexllkh4f6Z panda]# chmod 600 /tmp/
.font-unix/ .ICE-unix/  panda/      .Test-unix/ .X11-unix/  .XIM-unix/
[root@iZwz92os3ijinexllkh4f6Z panda]# chmod 600 /tmp/panda/swapDemo
[root@iZwz92os3ijinexllkh4f6Z panda]# #然后我们使用mkswap命令来将其转换为swap格式
[root@iZwz92os3ijinexllkh4f6Z panda]# mkswap /tmp/panda/swapDemo
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=4bea1c66-60ff-4b29-b9b3-9c87ce1e6e62
[root@iZwz92os3ijinexllkh4f6Z panda]# #最后我们启动该swap
[root@iZwz92os3ijinexllkh4f6Z panda]# #不对,我们应该先查看一下当前内存
[root@iZwz92os3ijinexllkh4f6Z panda]# free
total        used        free      shared  buff/cache   available
Mem:        1882312      590752       76528         328     1215032     1092344
Swap:             0           0           0
[root@iZwz92os3ijinexllkh4f6Z panda]# #然后启动刚才新建的swap
[root@iZwz92os3ijinexllkh4f6Z panda]# swapon /tmp/panda/swapDemo
[root@iZwz92os3ijinexllkh4f6Z panda]# #再次查看一下
[root@iZwz92os3ijinexllkh4f6Z panda]# free
total        used        free      shared  buff/cache   available
Mem:        1882312      591444       75832         328     1215036     1091652
Swap:       1048572           0     1048572
[root@iZwz92os3ijinexllkh4f6Z panda]# #ok,可以看到多了一个交换分区
[root@iZwz92os3ijinexllkh4f6Z panda]# #接下来将其卸载,然后删除
[root@iZwz92os3ijinexllkh4f6Z panda]# umount /tmp/panda/swapDemo ;rm-rf /tmp/panda/
umount: /tmp/panda/swapDemo: not mounted
-bash: rm-rf: command not found
[root@iZwz92os3ijinexllkh4f6Z panda]# #咦!!!?移除不是umount吗?为什么不行呢?
[root@iZwz92os3ijinexllkh4f6Z panda]# #当我们需要移除swap,我们需要使用swapoff命令

[root@iZwz92os3ijinexllkh4f6Z panda]# swapoff /tmp/panda/swapDemo  ;rm -rf /tmp/panda/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: