【Linux】磁盘分区,挂载,符号链接

存储基本概念

存储分类:

  1. 本地存储 DAS(直连式)
  2. 网络存储 NAS(网络附加存储) SAN(存储区域网络)
  3. 分布存储

磁盘分区理解

  1. 磁盘在使用前一般要先分区。
  2. 磁盘分区有主分区、扩展分区和逻辑分区之分。一块磁盘最多可以有4个主分区,其中一个主分区的位置可以用一个扩展分区替换,在这个扩展分区内可以划分多个逻辑分区。
  3. 如果规划的分区数量超过4个:则分区组合为3P+1E或2P+1E或1P+1E。
  4. 一块磁盘最多只能有一个扩展分区(扩展分区可以没有),扩展分区不能直接用,必须在扩展分区上划分逻辑分区,然后格式化(创建文件系统),之后才能存储数据或装系统。

分区表

  • MBR (master boot record主引导记录)
    MBR 有512byte字节,启动引导器占有446byte,分区表64byte平均分4块16byte x 4,写了从那开始从哪结束,只能记录4个区,还有2byte是字节符
  1. 只能有4个主分区
  2. 4个不够用,可以拿出一个(只能拿一个)主分区表做扩展
  3. 扩展分区不能直接使用,需要在扩展分区中划分逻辑分区使用
  4. MBR无法识别大于2T的设备
  • GPT (GUID Partition Table)
  1. GPT磁盘允许的分区数量几乎是无限的,但Windows实现将其限制为128个分区。
  2. GPT上的每个分区都可以像主分区一样工作。

存储单位:

bit   Byte   KB   MB   GB   TB   PB   EB   ZB   YB
1 Byte = 8 bit , 1024 KB = 1 MB

磁盘管理分区命令

fdisk命令
只支持 MBR 分区
fdisk  改进版 gdisk 支持 GPT

[root@host ~]# fdisk -l /dev/sdb    ##查看磁盘信息
[root@host ~]# fdisk /dev/sdb
Command(m for help): m      ---输出帮助信息
Commandaction
   a   toggle a bootable flag  ---设置启动分区
   b   edit bsd disklabel      ---编辑分区标签
   d   delete a partition      ---删除一个分区
   l   list known partition types  ---列出分区类型
   m   print this menu         ---帮助
   n   add a new partition     ---建立一个新的分区
   o   create a new empty DOS partition table  ---创建一个新的空白DOS分区表
   p   print the partition table           ---打印分区表
   q   quit without saving changes         ---退出不保存设置
   t   changea partition's system id      ---改变分区的ID
   u   changedisplay/entry units          ---改变显示的单位
   v   verifythe partition table          ---检查验证分区表
   w   write table to disk and exit       ---保存分区表


例子:
Command (m for help): n            ---n建立一个新的分区
Command action
  e   extended
  p   primary partition (1-4)      ---指定分区类型  e为扩展分区  p为主分区
p

Partition number (1-4): 1           ---定义分区数量   --主分区最多只能有四个
First cylinder (1-2610, default 1): 1   ---设定起始分区的位置
Last cylinder or +size or +sizeM or +sizeK(1-2610, default 2610):
Using default value 2610            ---回车,设定结束分区的位置2610
Command (m for help): w             ---保存刚才的配置信息


需要注意点:
有时因为系统的分区表正忙,所以需要重新启动系统才能使新的分区表生效。命令如下:
Command (m for help): w
#保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16:
Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.   #要求重新启动,才能格式化
Syncing disks.

如果不想重新启动,partprobe 命令作用是让系统内核重新读取分区表信息,这样就可以不用重新启动了。
[root@host ~]# partprobe

如果这个命令不存在,则请安装 parted-2.1-18.el6.i686 这个软件包。
partprobe 命令不是必需的,如果没有提示重启系统,则直接格式化即可。



parted命令
支持 MBR GPT 交互  
[root@host ~]# parted /dev/sdb   ---操作磁盘

[root@host ~]# parted /dev/sdb print        ---查看分区信息必须已有分区或创建分区表
[root@host ~]# parted /dev/sdb print free   ---查看磁盘剩余空间

使用mklabel会使原先的磁盘格式化,记录消失
[root@host ~]# parted /dev/sdb mklabel gpt     ---创建分区表 gpt    
[root@host ~]# parted /dev/sdb mklabel msdos   ---创建分区表 msdos
[root@host ~]# parted /dev/sdb mkpart          ---创建分区

例子:
[root@host ~]# parted /dev/sdb
1.创建分区表 gpt
(parted) mklabel gpt

2.创建分区
(parted) mkpart 

3.第一件事先给第一个分区创建一个名字
Partition name?  []?p1

4.第二是给出系统文件类型(一般有xfs,ext4..)
File system type?  [ext2]? xfs

5.第三限定分区的空间
Start? 0%
End?20%

6.让操作系统读取加载/dev/sdb全部分区
[root@host ~]# partx -a /dev/sdb  或者执行# partprobe


删除已分好的磁盘分区
(parted) p                ---显示分区信息
(parted) rm 1             ---删除分区1


非交互方法(命令写后面)
[root@host ~]# parted /dev/sdb print free


格式化
文件系统 (默认本地文件系统是xfs)
[root@host ~]# mkfs 按两次tab         ##查看所有文件系统格式
[root@host ~]# mkfs.xfs /dev/sdb1    ##格式化文件系统为xfs
[root@host ~]# mkfs.ext4 /dev/sdb1   ##格式化文件系统为etx4


挂载(mount)操作

linux系统中挂载设备必须通过挂载后才能使用
[root@host ~]# df -h    ---查看绑定挂载关系,以及硬盘使用情况
[root@host ~]# df -Th   ---显示更详细

挂载点(分区不要随便挂,会覆盖,撤销挂载会恢复)
1./mnt    ##linux系统预留挂载点
2.自己建个目录当挂载点     ##自定义挂载点


mount只能挂载文件系统,即有文件格式的分区
[root@host ~]# mount /dev/sdb1 /mnt/    ---挂载              
[root@host ~]# umount /mnt              ---卸载挂载点

注意点:
当卸载挂载点时出现  device is busy
## -v表示哪些进程在占用挂载点(/mnt)
[root@host ~]# fuser -v /mnt/
USER PID ACCESS COMMAND
/mnt/: root 2851 ..c.. bash

强制关闭使用程序,卸载挂载点 
## -km 结束占用挂载点的进程
[root@host ~]# fuser -km /mnt/


在挂载时指定挂载选项:
[root@host ~]# mount -o remount,rw /mnt/data1
-o           重新挂载一下
remount,rw   以读写的方式加载挂载点

例:
挂载光盘
mount -t iso9660 /dev/cdrom /mnt
挂载镜像⽂件
mount -o loop /tmp/RHEL6.iso /mnt
挂载USB设备
mount -t vfat /dev/sdNX /mnt



开机挂载文件(man 5 fstab)
[root@host ~]# vim /etc/fstab 
设备的UUID   挂载点   文件系统类型    挂载选项   dump    fsck
写挂载硬盘(也可以用uuid)  挂载点  文件系统类型(ext4,xfs) 挂载选项defaults默认  0 0

编辑fstab是要注意,如果不慎将fstab 中的内容写错,可能会导致系统在启动过程中出现问题。
但是不用担心在编辑完文件之后,我们可以使用mount -a 检查一下,执行不报错说明挂载开机文件没写错。
[root@host ~]# mount -a   

挂载硬盘已经格式化后有一个uuid编码
[root@host ~]# blkid /dev/sdb2



触发挂载跟网络存储有关
Autofs  自动触发式挂载
[root@host ~]# yum install autofs -y
[root@host ~]# systemctl start autofs ;systemctl enable autofs 


例子:当触发/test/aaa 的时,自动挂载到 dev/sdb1 挂载点上。
[root@host ~]# mkdir /test       ---不需要创建/aaa
修改
[root@host ~]# vim /etc/auto.master
/test    /etc/auto.test(创建子文件) --timeout=10 (多长时间不用就卸载)

配置子文件
[root@host ~]# vim /etc/aute.test
aaa      -fstype=ext4(文件类型)      : /dev/sdb1 (挂载点)

修改配置文件重启服务
[root@host ~]#  systemctl restart autofs


例子:挂载其他ip地址的/home时,可以在子配置文件这么写 
*         -fstype=nfs4            IP地址:/home/&

系统文件格式可以使用[ df -Th ]查看
*    &意思 是  要/home的什么就给上* 什么  

⽂件链接原理及注意事项 ( 软链接 vs 硬链接 )

硬链接
1、 两个⽂件名必须都在⼀个⽂件系统上(共享⼀个inode号码,inode表对于某个⽂件系统是独特的)。inode号码和inode必须在同⼀个⽂件系统
2、 ⽆法使⽤ln命令创建⽬录的额外硬链接
3、 ⽂件的链接数会增加,删除⽂件链接数会减⼀,在删除所有名称之前,数据⼀直存在。
 ln filename linkname
 
符号链接(软连接)
1、 有⾃⼰的inode号码:符号链接是和原⽂件不同的单独⽂件
2、 ⻓列表(ls -l)的第⼀个字⺟是l:符号链接是⼀种特殊类型的⽂件,它有⾃⼰的⽂件类型标记
3、 符号链接的权限不重要,实际是指向⽂件的权限
4、 符号链接的内容是它指向⽂件的路径名
5、 如果删除了原⽂件,则数据丢失。
 ln -s /PATH/filename linkname
使⽤readlink b.txt 读取链接中的路径

例如:更改时区就要用到软链接
ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值