在上篇博客 Linux 如何给新加的硬盘重新添加分区(纯新手)中,
提到了首次如何添加分区,但在实际应用中关于挂载(mount)这部分还有一些疑问,比如:
- 挂载的目录到底能不能选已经存在的目录?会有什么后果?
- 已经存在于其他目录的项目如何利用这个新盘的空间?
- 如果想将之前的项目迁移/复制到新盘中,应该如何操作?
1. 挂载
1.1 常见的挂载点
/ 根目录,存放系统命令和用户数据等(如果下面挂载点没有单独的分区,它们都将在根目录的分区中)
/boot boot loader 的静态链接文件,存放与Linux启动相关的程序
/home 用户目录,存放普通用户的数据
/tmp 临时文件
/usr 是Linux系统存放软件的地方,如有可能应将最大空间分给它
/usr/local 自已安装程序安装在此
/var 不断变化的数据,服务器的一些服务、日志放在下面
/opt (Option可选的)附加的应用程序软件包
/bin 基本命令执行文
/dev 设备文件
/etc 主机特定的系统配置
/lib 基本共享库以及内核模块
/media 用于移动介质的挂载点
/mnt 用于临时挂载文件系统或者别的硬件设备(如光驱、软驱)
/proc 系统信息的虚拟目录(2.4 和 2.6 内核),这些信息是在内存中,由系统自己产生的
/root root 用户的目录
/sbin 基本系统命令执行文件
/sys 系统信息的虚拟目录(2.6 内核)
/srv 系统提供的用于 service 的数据
/usr/X1186 X-Windows目录,存放一些X-Windows的配置文件
/usr/include 系统头文件,存储一些C语言的头文件
/usr/src Linux内核源代码,Linux系统所安装的内核源代码都保存在此
/usr/bin 对/bin目录的一些补充
/usr/sbin 对/sbin目录的一些补充
/lost+found 这个目录在大多数情况下都是空的。但是如果你正在工作突然停电,或是没有用正常方式关机,在你重新启动机器的时候,有些文件就会找不到应该存放的地方,对于这些文件,系统将他们放在这个目录下
1.2 挂载的一些认识
a. 挂载点必须是一个目录
b. 一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样,卸载后,目录以前的文件都还在,不会有任何丢失
c. 目录只占磁盘里的一个inode,存放文件属性等信息
d. 任何一个分区都必须挂载到某个目录上
e. 目录是逻辑上的区分。分区是物理上的区分
f. 磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作
g. 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区
h. 一个分区可以挂在多个目录,但反过来一个目录只能是一个分区的挂载点
突然间发现,之前将50G的硬盘分为两个盘(20g+30g)是不明智的选择,把之前的项目全部转移过来的话,还是不分区的好!
2. 迁移数据:将数据转移至新盘
其实,之前的新磁盘虽然分区了,但是也只是临时找了一个新的目录挂载的,为什么不在迁移数据之后(之前的文件先不删除),把它重新挂载在熟悉的地方呢(新建一个文件夹)。
2.1 迁移数据
将 kaldi
下的所有内容复制得到临时文件夹newdisk1
的下面。
scp -r /home/suer/kaldi/* /home/newdisk1/
迁移之后:
2.2 重新挂载
-
在目标位置新建一个文件目录
kaldi_2020
(用来挂载):mkdir kaldi_2020
-
先取消挂载(在根目录进行):
umount /home/newdisk1
(不知道这一步是不是必要) -
再重新挂载至目标位置:
mount /dev/sdb1 /home/suer/kaldi_2020
- 最后设置开机自动挂载:
vim /etc/fstab
/dev/sdb1 /home/suer/kaldi_2020 ext4 defaults 0 0
- 重启服务器,查看新盘是否挂载正常。
3. 后续问题:操作复制来的文件-Permission denied
后来使用 ls -l
命令发现,当时复制来的文件,拥有者和用户组和都是 root :
可以把下面的每一条信息分为 8 个部分:
文件类型 权限信息 连结数 拥有者 用户组 文件容量 修改日期 文件名
我需要将其恢复到一般用户可以使用的状态:
解决办法:修改文件拥有者和所属用户组
# 修改文件拥有者
$ chown [-R] 账号名称 文件或目录
$ chown [-R] 账号名称:组名 文件或目录
# 修改文件所属用户组
$ chgrp [-R] 用户组名称 文件或目录
即在 root 身份
下执行:
-
chown -R suer /home/suer/kaldi_2020
-
chgrp -R suer /home/suer/kaldi_2020
修改之后:
参考: