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 | /sdb1 | xfs | defaults | 0 | 0 |
---|---|---|---|---|---|
要挂载的分区设备 | 挂载点 | 文件系统类型 | 挂载选项 | 是否备份 | 是否检测 |
其中第四列: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 | 最早检验(一般根目录会选择) |
2 | 1级别检验完成之后进行检验 |
执行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