«

Linux 磁盘的分区工具和挂载

指尖二进制 • 1 年前 • 760 次点击 • LINUX


磁盘分区工具和挂载

MBR分区:全称为 Master Boot Record,既硬盘的主引导记录
磁盘的 0 柱面、0 磁头、1扇区称为主引导扇区(页脚主引导记录MBR)。他由三个部分组成。
1:第一部分是:主引导程序、磁盘分区表 DPT (Disk Partition Table)和分区有效标志(55AA)。在总共512自己的主引导扇区里引导程序(boot loader)占446个字节。
2:第二部分是:Partition Table区(分区表),既DPT,占64个字节,硬盘中分区有多少以及每一分区的撒小都记在其中
3:第三部分是:magic number,占2个字节,固定为55AA

分区编号:主分区 1-4 逻辑分区:5......
linux规定:逻辑分区必须建立在扩展分区只上,而不是建立在主分区上

分区作用:
主分区:主要使用来启动操作系统的,主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上
扩展分区:不能使用的,他只是作为逻辑分区的容器存在的,我们真正存放数据的是主分区和逻辑分区,大量的数据都放在逻辑分区中
注意了啊:如果你使用的是GPT分区方式,那么它没有限制主分区个数。可以有很多个

注意:使用分工具fdisk对磁盘进行操作、分区、格式化(重点)
命令方式:/dev/vd[a-z]n
其中:a-z表示设备的序号,如vda表示第一块IDE磁盘,vdb就是第二块......
n表示每块磁盘上划分的磁盘分区编号

[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb

[root@localhost ~]# fdisk /dev/sdb 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x16189578 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition                       ---删除分区
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types               ---显示分区类型
   m   print this menu                          ---打印帮助菜单
   n   add a new partition                      ---添加新的分区
   o   create a new empty DOS partition table
   p   print the partition table                ---显示分区表
   q   quit without saving changes              ---不保存退出
   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)

命令(输入 m 获取帮助):p     ------打印分区表

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16189578

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n     ------新建一个分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p           ------主分区
分区号 (1-4,默认 1):         ------直接默认
起始 扇区 (2048-41943039,默认为 2048):         ------直接默认
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G       ------分1G大小
分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):w     ------保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1

如果提示警告按照下面选择执行
reboot  #最好的方法
partx -a /dev/sab   #获得新分区表

使用/dev/sdb1分区
格式化(ext4)

[root@localhost ~]# mkfs.ext4 /dev/sdb1 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

但是不需要ext4格式的需要的是xfs格式的

[root@localhost ~]# mkfs.xfs /dev/sdb1 
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (ext4).
mkfs.xfs: Use the -f option to force overwrite.

加-f强制执行

[root@localhost ~]# mkfs.xfs -f /dev/sdb1   #格式化,-f 对已经存在文件系统的分区,强制格式化。
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

进行挂载使用

[root@localhost ~]# mkdir /sdb1     #创建挂载点
[root@localhost ~]# mount /dev/sdb1 /sdb1/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   38G  975M   37G    3% /
devtmpfs                 903M     0  903M    0% /dev
tmpfs                    913M     0  913M    0% /dev/shm
tmpfs                    913M  8.6M  904M    1% /run
tmpfs                    913M     0  913M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                    183M     0  183M    0% /run/user/0
/dev/sdb1                5.0G   33M  5.0G    1% /sdb1

测试新分区是否能够正常使用

[root@localhost ~]# cd /sdb1/
[root@localhost sdb1]# cp /etc/passwd ./
[root@localhost sdb1]# ls
passwd

解决卸载不了的问题

[root@localhost sdb1]# umount /dev/sdb1
umount: /sdb1:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@localhost sdb1]# lsof /sdb1
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    2609 root  cwd    DIR   8,17       19  128 /sdb1
lsof    2664 root  cwd    DIR   8,17       19  128 /sdb1
lsof    2665 root  cwd    DIR   8,17       19  128 /sdb1

杀进程

[root@localhost sdb1]# kill -9 2609

退出这个目录

[root@localhost sdb1]# cd
[root@localhost ~]# umount /dev/sdb1

卸载:
umount 挂载点 或者 umount 设备路径

开机自动挂载

[root@localhost ~]# vim /etc/fstab 
/dev/sdb1               /sdb1                   xfs     defaults        0 0

注:

/dev/sab1/sdb1xfsdefaults00
要挂载的分区设备挂载点文件系统类型挂载选项是否备份是否检测

其中第四列:parmeters-文件系统的参数

Async/sync设置是否为同步方式运行,默认为async
auto/noauto当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
rw/ro是否以以只读或者读写模式挂载
exec/noexec限制此文件系统内是否能够进行"执行"的操作
user/nouser是否允许用户使用mount命令挂载
suid/nosuid是否允许SUID的存在
Usrquota启动文件系统支持磁盘配额模式
Grpquota启动文件系统对群组磁盘配额模式的支持
Defaults同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置

第五列:是否进行备份。通常这个参数的值为0或1

0代表不要做备份
1代表要每天进行操作
2代表不定日期的进行备份

第六列:是否检验扇区:开机的过程中,系统默认会以 fsck 检验我们系统是否为完整

0不要检验
1最早检验(一般根目录会选择)
21级别检验完成之后进行检验

执行mount -a再次查看又这个sdb1挂载点说明没有任何问题
mount -a自动挂载/etc/fstab中没有挂载的文件

[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   38G  977M   37G    3% /
devtmpfs                 903M     0  903M    0% /dev
tmpfs                    913M     0  913M    0% /dev/shm
tmpfs                    913M  8.6M  904M    1% /run
tmpfs                    913M     0  913M    0% /sys/fs/cgroup
/dev/sda1                497M  125M  373M   25% /boot
tmpfs                    183M     0  183M    0% /run/user/0
/dev/sr0                 4.1G  4.1G     0  100% /mnt/cdrom
/dev/sdb1                5.0G   33M  5.0G    1% /sdb1

查看硬盘的uuid可以使用uudi挂载

[root@localhost ~]# blkid 
/dev/sdb1: UUID="65a3a0c9-ebb1-4598-b771-cced185067d8" TYPE="xfs"
/dev/sda1: UUID="fef60b17-a159-4fbb-bc93-635972cbbf39" TYPE="xfs"
/dev/sda2: UUID="lXUG7M-WMsM-vWip-hRaT-t5fe-V1Cb-dk7QOd" TYPE="LVM2_member"
/dev/sr0: UUID="2015-12-09-23-14-10-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-root: UUID="c908bd4a-4b8f-42c8-9be3-28fbcfde8ccb" TYPE="xfs"
/dev/mapper/centos-swap: UUID="e6f2a5ef-3b21-4b3c-aa9d-4244c1a330c5" TYPE="swap"

[root@localhost ~]# echo "UUID=65a3a0c9-ebb1-4598-b771-cced185067d8 /sdb1 xfs defaults 0 0" >> /etc/fstab
还没收到回复