挂载分区的经典案例
挂载分区的经典案例
将来工作中,服务器中的空间不够用了,就可以这么操作,非常有用的操作。
虚拟机增加硬盘
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!重启之后,执行 lsblk
,可以看到新的硬盘,名称是 sdb,符合前面提到的命名规律,大小正好是 1G。
sdb 这个硬盘在/dev/
目录下会有一个对应的文件,因为/dev
是设备管理器,被识别的设备在这个文件夹下都会有一个对应的文件:
可以看到 dev 下确实有这个硬盘文件,
分区
fdisk
fdisk
是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。需要 root 权限。不仅能看磁盘的分区情况,还可以操作磁盘的分区。高级!
|
|
必要参数:
-
-l
:列出素所有分区表 -
-u
:与-l
搭配使用,显示分区数目,一般都是这俩一起用
选择参数:
-
-s <分区编号>
指定分区 -
-v
:版本信息
菜单操作说明
-
m:显示菜单和帮助信息
-
a:活动分区标记/引导分区
-
d:删除分区
-
l:显示分区类型
-
n:新建分区 常用
-
p:显示分区信息
-
q:退出不保存
-
t:设置分区号
-
v:进行分区检查
-
w:保存修改 最后必须要进行这个操作才能把操作同步到磁盘中
-
x:扩展应用,高级功能
简单实践:
fdisk -lu
sdb 还未分区
fdisk
命令后面跟磁盘对应的设备文件,表示要对磁盘进行操作
我们现在使用命令 fdisk
开始对硬盘进行分区,就只分一个区,直接输入这三步即可
注意:一定要进行 w 操作,不然用户对磁盘的操作不会同步到磁盘之中。
然后查看,输入lsblk
fdisk
都可以看到新分区。
上面的例子是对一块新加的磁盘进行分区操作,其实,有时候,我们也需要对已经存在的磁盘比如 sda 进行分区操作,这种情况一般出现在 Linux 虚拟机内存不够,我们通过在 Vmware Work Station 中将虚拟机内存调大之后需要进行的操作,具体的步骤也是差不多的,也是需要通过 fdisk
工具新建分区,
先输入fdisk /dev/sda
,然后顺序输入 m、n、p、默认回车、默认回车、w,
再次输入fdisk -l
命令查看分区,发现多了 一个新的 分区。再次输入 lsblk
命令查看新加的硬盘分区状况。发现新加的分区 在 lsblk
命令下不显示,此时你可以通过 partprobe /dev/sda
来刷新分区信息,或者直接重启虚拟机。
具体请看动态扩容
小节。
格式化
格式化其实就是初始化文件系统的意思,这里不再赘述。
lsblk -f
查看的时候,没有看到 sdb1 的文件系统类型和 UUID,说明还没有格式化
mkfs make file system
mkfs(英文全拼:make file system)命令用于在特定的分区上建立 linux 文件系统。
|
|
参数:
filesys
既可以是设备名,(如:/dev/hda1
,/dev/sdb2
),也可以是文件系统的挂载点(如:/
,/usr
,/home
)。
-
-V
:详细显示模式 -
-t
:给定档案系统的型式,Linux 的预设值为 ext2 -
-c
:在制做档案系统前,检查该 partition 是否有坏轨 -
-l bad_blocks_file
:将有坏轨的 block 资料加到 bad_blocks_file 里面 -
block
:给定 block 的大小
常用参数也就是 -t
我们用mkfs
来格式化
mkfs -t ext4 /dev/sdb1
有时候格式化不成功,可以强制格式化
mkfs -t ext4 -f /dev/sdb1
再次查看 lsblf -f
,即可看到文件系统类型和 UUID,还未挂载,没有挂载点
挂载
挂在之后,sdb1 才可以在df
命令中看到
mount
在 Unix 系统中可访问的所有文件都被安排在一个大树中,即文件层次结构,其根基是/
。mount
命令的作用是将某个设备上的文件系统连接到大文件树上。反之,umount
命令将把它再次分离出来。
Linux mount
命令是经常会使用到的命令,它用于挂载 Linux 系统外的文件。
常用参数:
-a
:将 /etc/fstab
中定义的所有档案系统挂上。
-t
:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
常用例子:
将 /dev/hda1
挂在 /mnt
之下。
mount /dev/hda1 /mnt
一个经常用的场景,就是mount
挂载 iso
mount -o loop /home/tecmint/Fedora-18-i386-DVD.iso /mnt/iso
umount
Linux umount(英文全拼:unmount)命令用于卸除文件系统。
umount
可卸除目前挂在 Linux 目录中的文件系统。
常用例子:
通过设备名卸载
umount -v /dev/sda1
通过挂载点卸载
umount -v /mnt/mymount/
记住,退到挂载分区外的目录下,再执行卸载命令,不然就会提示
因为你在这个目录中,就相当于这个目录正在被使用,肯定是无法被卸载的,在外面就可以:
我有个问题:卸载根分区会怎么样?umount /
感觉不可以,因为你没法跑到根目录以外去执行umount
,
哈哈哈哈。果然不行。
创建文件夹,然后把设备挂载到此目录下
这个时候再查看 lsblk -f
可以看到挂载点,
查看df
也可以查看到挂载的 /dev/sdb1
分区
挂载成功之后,往分区中写入了文件,这个文件就存在于硬盘中了,取消挂载之后,这个文件也还是在磁盘分区中,再把这个分区挂载到别的目录下,别的目录也可以直接读取磁盘分区中的文件,除非你把磁盘分区格式化了。
但是注意,用命令行挂载,重启之后,挂载失效。
设置可以永久挂载或者叫自动挂载
直接修改/etc/fstab
文件fstab
包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。
这个文件的全路径是/etc/fstab
。它只是一个文本文件,你能够用你喜欢的编辑器打开它,但是必须是 root 用户才能编辑它。同时fsck
、mount
、umount
的等命令都利用该程序。
具体来说:用fstab
可以自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等。
打开/etc/fstab
:
格式如下:
|
|
-
fs_spec
:设备参数,你可以用 UUID 指定,也可以直接写分区对应的设备文件路径 比如/dev/sdb1
,这里也可以挂载远程文件系统,这里就不仔细研究了。 -
fs_file
:挂载点 -
fs_type
:文件系统类型 -
fs_options
:指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。这个参数一般对于的硬盘类型不需要设置,写defaults
即可 -
fs_dump
:该选项被dump
命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为 0,此处为 1 的话,表示要将整个fs_spec
里的内容备份。现在很少用到dump
这个工具,在这里一般选 0。 -
fs_pass
:该字段被fsck
命令用来决定在启动时需要被扫描的文件系统的顺序。若该文件系统无需在启动时扫描则设置该字段为 0。载点为/
的(即根分区),必须在这里填写 1,其他的都不能填写 1。如果有分区填写大于 1 的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字的同时检查。比如第一和第二个分区填写 2,第三和第四个分区填写 3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个分区。
我们直接添加一行
添加完成后执行mount –a
即刻生效,注意只在当前session
中生效
重启之后发现已经自动挂载了。
动态扩容
有时候我们的系统磁盘不够了,我们需要增加磁盘空间,常规的做法是,额外加一块硬盘,然后创建分区,格式化之后挂载到指定的目录下面,然后我们就可以将比较占空间的文件,比如数据库应用的数据文件移动到此目录下,但是这样的话,服务器上的应用可能就需要停机,然后复制文件或者修改配置(比如数据文件的位置),对于不能接收服务暂停的场景,这样做法就很不方便,此时,我们可以考虑磁盘的动态扩容。
关于动态扩容,请查看文档《Linux 动态扩容》