「大数据」(一百零四)创建文件系统挂载和卸载

【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[104]篇文章,欢迎阅读收藏】

1 基本概念

手动处理 mount 不是很人性化,那么是否在开机的时候就将想要的文件系统都挂载好,不用每次进入系统还需要在挂载一次呢?答案是肯定的,不过系统挂载也是存在一些局限。

挂载:就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下; 也就是说,进入该目录就可以读取该分割槽的意思。这个动作我们称为『挂载』,那个进入点的目录我们称为『挂载点』。

「大数据」(一百零四)创建文件系统挂载和卸载

上图中假设我的硬盘分为两槽, partition 1 是挂载到根目录, partition 2 则是挂载到 /home 这个目录。 这也就是说,当我的数据放置在 /home 内的各次目录时,数据是放置到 partition 2 的,如果是放在 /home 底下的目录,那么数据就会被放置到 partition 1 了。

判断某个文件在那个 partition 底下是很简单的,透过反向追踪即可。以上图来说, 当我想要知道 /home/vbird/test 这个文件在那个 partition 时,由 test --> vbird --> home --> / ,看那个『进入点』先被查到那就是使用的进入点了。 所以 test 使用的是 /home 这个进入点而是 /

2 术语解释

1. 挂载:根文件系统外通过关联到根文件系统上的某个目录来实现访问。

2. 卸载:就是直接将已挂载的文件系统给卸除掉

3 详细说明

新增磁盘步骤:

对磁盘进行分区,以创建可用的 partition ;

对该 partition 进行格式化 ( format ),以创建系统可用的 filesystem ;

若想要仔细一点,则可对刚刚创建好的 filesystem 进行检验;

在 Linux 系统上,需要创建挂载点 (亦即是目录),并将他挂载上来;

3.1 磁盘分区

3.1.1 磁盘分区( fdisk )

<code>fdisk /dev/sda
Command ( m for help ) : m   <== 输入 m 后,就会看到下面这些指令介绍
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition            <== 删除一个 partition
l   list known partition types
m   print this menu
n   add a new partition           <== 新增一个 partition
o   create a new empty DOS partition table
p   print the partition table     <== 在屏幕上显示分区表
q   quit without saving changes   <== 不储存离开 fdisk 程序
s   create a new empty Sun disklabel
t   change a partition's system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit  <== 将刚刚的动作写入分区表
x   extra functionality ( experts only )/<code>

3.1.2 创建文件系统(磁盘格式化)

· XFS 文件系统 mkfs.xfs

mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] \\ [-r parms] 设备名称

选项与参数:

关于单位:下面只要谈到 “ 数值 ” 时,没有加单位则为 Bytes 值,可以用 k,m,g,t,p (小写)等来解释,比较特殊的是 s 这个单位,它指的是 sector 的 “ 个数 ” 。

<code>-b :后面接的是 block 容量,可由 512 到 64k ,不过最大容量限制为 Linux 的 4k
-d :后面接的是重要的 data section 的相关参数值,主要的值有:
agcount= 数值:设置需要几个储存群组的意思( AG ),通常与 CPU 有关
agsize= 数值:每个 AG 设置为多少容量的意思,通常 agcount/agsize 只选一个设置即可。
file :指的是 “ 格式化的设备是个文件而不是个设备 ” 的意思(例如虚拟磁盘)。
size= 数值: data section 的容量,亦即你可以不将全部的设备容量用完的意思。
su= 数值:当有 RAID 时,那个 stripe 数值的意思,与下面的 sw 搭配使用
sw= 数值:当有 RAID 时,用于储存数据的磁盘数量(须扣除备份碟与备用碟)
sunit= 数值:与 su 相当,不过单位使用的是 “ 几个 sector ( 512Bytes 大小) ” 的意思
swidth= 数值:就是 su*sw 的数值,但是以 “ 几个 sector ( 512Bytes 大小) ” 来设置
-f :如果设备内已经有文件系统,则需要使用这个 -f 来强制格式化才行。
-i :与 inode 有较相关的设置,主要的设置值有:
size= 数值:最小是 256Bytes 最大是 2k ,一般保留 256 就足够使用。
internal=[0|1] : log 设备是否为内置?默认为 1 内置,如果要用外部设备,使用下面设置

logdev=device : log 设备为后面接的那个设备上头的意思,需设置 internal=0 。
size= 数值:指定这块登录区的容量,通常最小得要有 512 个 block ,大约 2M 以上才行。
-L :后面接这个文件系统的标头名称 Label name 。
-r :指定 realtime section 的相关设置值,常见的有:
extsize= 数值 :就是那个重要的 extent 数值,一般不须设置,但有 RAID 时, 最好设置与 swidth 的数值相同,最小为 4K 最大为 1G 。
/<code>

EXT4 文件系统 mkfs.ext4

mkfs.ext4 [-b size] [-L label] 设备名称

选项与参数:

-b :设置 block 的大小,有 1K, 2K, 4K 的容量,

-L :后面接这个设备的标头名称。

3.2 磁盘挂载

单一文件系统不应该被重复挂载在不同的挂载点 ( 目录 ) 中;

单一目录不应该重复挂载多个文件系统;

要作为挂载点的目录,理论上应该都是空目录才行。

3.2.1 Mount 挂载命令介绍

mount [-t 文件系统 ] 设备文件名 挂载点

选项与参数:

<code>-a :依照配置文件 [/etc/fstab](../Text/index.html#fstab) 的数据将所有未挂载的磁盘都挂载上来
-l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称。
-t :可以加上文件系统种类来指定欲挂载的类型。常见的 Linux 支持类型有: xfs, ext3, ext4,
reiserfs, vfat, iso9660 (光盘格式) , nfs, cifs, smbfs (后三种为网络文件系统类型)
-n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。但在某些情况下(例如单人维护模式)为了避免问题会刻意不写入。此时就得要使用 -n 选项。
-o :后面可以接一些挂载时额外加上的参数,比方说帐号、密码、读写权限等:
async, sync: 此文件系统是否使用同步写入 ( sync ) 或非同步 ( async ) 的 内存机制,请参考 [ 文件系统运行方式 ](../Text/index.html#harddisk-filerun) 。默认为 async 。
atime,noatime: 是否修订文件的读取时间( atime )。为了性能,某些时刻可使用 noatime
ro, rw: 挂载文件系统成为只读( ro ) 或可读写( rw )
auto, noauto: 允许此 filesystem 被以 mount -a 自动挂载( auto )
dev, nodev: 是否允许此 filesystem 上,可创建设备文件? dev 为可允许

suid, nosuid: 是否允许此 filesystem 含有 suid/sgid 的文件格式?
exec, noexec: 是否允许此 filesystem 上拥有可执行 binary 文件?
user, nouser: 是否允许此 filesystem 让任何使用者执行 mount ?一般来说, mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够对此 partition 进行 mount 。
defaults: 默认值为: rw, suid, dev, exec, auto, nouser, and async
remount: 重新挂载,这在系统出错,或重新更新参数时,很有用。/<code>

3.3 磁盘卸载

umount [-fn] 设备文件名或挂载点

选项与参数:

<code>-f :强制卸载!可用在类似网络文件系统 ( NFS ) 无法读取到的情况下;
-l :立刻卸载文件系统,比 -f 还强!
-n :不更新 /etc/mtab 情况下卸载。/<code>


分享到:


相關文章: