Linux基础_磁盘分区
Posted 一头牛这么多人放
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础_磁盘分区相关的知识,希望对你有一定的参考价值。
如果在系统中新增一块硬盘时,我们得完成下方的工作
1:对磁盘进行分区
2:对该分区进行格式化
3:对新建好的文件系统进行检验
4:创建挂载点
# 为什么要进行磁盘分区
1:更容易进行管理和控制系统(相关的文件和目录都在同一个分区中)
2:系统的效率更高
3:可以限制用户使用磁盘的大小
4:更容易进行备份和恢复
# 硬盘的逻辑结构
一个硬盘在逻辑上可以分为块,磁道,磁柱,分区
块:盘片上最小的寻址单位,一个块可存储一定字节的数据
磁道:由一系列头尾相连的块组成的圆圈
磁柱:由多个磁道重叠在一起,由具有相同半径的盘面上的磁道组成
分区:分区由一组相邻的磁柱组成
# Linux系统中硬盘的分区
硬盘分区的分类:主分区,扩展分区,逻辑分区
主分区:一个硬盘最多只能有4个主分区
## 利用 fdisk和partprobe命令来进行硬盘分区管理
# fidsk
# fdisk -l 设备名称(如/dev/sdb) [[email protected] 桌面]# fdisk -l /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 -l # 输出后面接的设备所有分区内容,当只输入fdisk -l时,输出系统中所有设备的分区 # fdisk中的参数 d # 删除一个已经存在的分区 d=>delete l # 列出已知分区类型 l=>list m # 列出fdisk中所有的命令 n # 添加新分区 p # 打印分区表 q # 不保存更改就退出 t # 更改分区的系统ID w # 将表写入磁盘并退出 b # 编辑BSD磁盘标签 c # 切换DOS兼容性标志 o # 创建新的空DOS分区表 s # 创建新的空Sun磁盘标签 u # 更改显示/输入单位 v # 验证分区表 x # 额外功能(仅限专家)
# 找出可用磁盘文件名称 df
[[email protected] 桌面]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 14987656 7256016 6963640 52% / tmpfs 502068 76 501992 1% /dev/shm /dev/sda1 487652 34962 427090 8% /boot /dev/sr0 3824484 3824484 0 100% /media/CentOS_6.8_Final
# 新建磁盘分区
# 1 进入fdisk界面中
[[email protected] 桌面]# fdisk /dev/sdb
# 2 查看帮助(输入m)
Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag 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 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)
# 3 输入n新建一个分区
Command (m for help): n Command action e extended # 副分区(扩展分区,逻辑上的,只能一个) p primary partition (1-4) # 主分区(最多能创建4个) p # 输入p来新建一个主分区 Partition number (1-4): 1 # 输入1表示新建第一个主分区 First cylinder (1-2610, default 1): # 第一个不必输入分区编号,直接按下回车键(如若只创建一个分区,那么该分区从1-2610) Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +5G ## 第一个分区为一开始的大小到5G
# 4 查看当前分区信息
Command (m for help): p # 查看当前的分区信息 Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x3329997a Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux # 此处为第一个分区 Device # 设备文件名称, Boot # 表示是否为开机引导模块 Start End # 表示这个分区在哪个柱面号码之间,可以决定次分区的大小 Blocks # 以1K为单位的容量 ID # System # 所属系统
# 5 创建第二个分区,并查看分区信息
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (655-2610, default 655): Using default value 655 Last cylinder, +cylinders or +size{K,M,G} (655-2610, default 2610): +5G Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x3329997a Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux /dev/sdb2 655 1308 5253255 83 Linux
# 6 当根据上方操作新建了4个主分区后,打印当前分区情况(不能再新建主分区,只能创建4个主分区)
Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux /dev/sdb2 655 1308 5253255 83 Linux /dev/sdb3 1309 1962 5253255 83 Linux /dev/sdb4 1963 2610 5205060 83 Linux
# 7 删除一个分区
# 删除一个分区 Command (m for help): d Partition number (1-4): 4 # 输入要删除的分区的编号 # 再次查看有没有删除分区 Command (m for help): p (前面省略) Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux /dev/sdb2 655 1308 5253255 83 Linux /dev/sdb3 1309 1962 5253255 83 Linux
# 8 创建扩展分区(在扩展分区中再新建分区)
扩展分区:扩展分区只是逻辑上的概念,表示扩展分区将剩下的空间打包好了,可以再在扩展分区的基础上新建分区(扩展分区本身不用来存储文件,就是一个逻辑上的概念)
Command (m for help): n Command action e extended p primary partition (1-4) e # 选择创建扩展分区 Selected partition 4 First cylinder (1963-2610, default 1963): Using default value 1963 Last cylinder, +cylinders or +size{K,M,G} (1963-2610, default 2610): Using default value 2610 # 再次查看当前新建的扩展分区 Command (m for help): p (前面省略) Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux /dev/sdb2 655 1308 5253255 83 Linux /dev/sdb3 1309 1962 5253255 83 Linux /dev/sdb4 1963 2610 5205060 5 Extended
# 9 再扩展分区的基础上新建分区
Command (m for help): p (前面省略) Device Boot Start End Blocks Id System /dev/sdb1 1 654 5253223+ 83 Linux /dev/sdb2 655 1308 5253255 83 Linux /dev/sdb3 1309 1962 5253255 83 Linux /dev/sdb4 1963 2610 5205060 5 Extended /dev/sdb5 1963 2094 1060258+ 83 Linux # 扩展分区上新建的分区(称为逻辑分区)
# 10 保存分区
Command (m for help): w # 保存分区 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [[email protected] 桌面]# partprobe # 更新当前分区 Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙). As a result, it may not reflect all of your changes until after reboot. [[email protected] 桌面]# ls /dev/sdb # 查看分区情况 /dev/sdb
# mkfs
# 2 多种格式化方法 [email protected] 桌面]# mkfs mkfs mkfs.ext2 mkfs.ext4 mkfs.msdos mkfs.cramfs mkfs.ext3 mkfs.ext4dev mkfs.vfat # 3 格式化分区例子 格式化sdb3 [[email protected] 桌面]# mkfs.ext4 /dev/sdb2 mke2fs 1.41.12 (17-May-2010) 文件系统标签= # 指的是分区的名称 操作系统:Linux 块大小=4096 (log=2) # block的大小设置为4K 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 328656 inodes, 1313313 blocks # 该行决定inode/block数量 65665 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=1346371584 41 block groups 32768 blocks per group, 32768 fragments per group 8016 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # -t:可以接文件系统进行格式,如ext2
# mke2fs 可以用来指定格式化时的的各项参数
[[email protected] 桌面]# mke2fs -j -L "doaoao1" -b 2048 -i 8192 /dev/sdb3 mke2fs 1.41.12 (17-May-2010) 文件系统标签=doaoao1 操作系统:Linux 块大小=2048 (log=1) 分块大小=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 656880 inodes, 2626626 blocks 131331 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=540016640 161 block groups 16384 blocks per group, 16384 fragments per group 4080 inodes per group # 卷标设置为doaoao1 # block大小指定为2048 # 每8192bytes分配一个node # 构建journal为EXT3文件系统 # 格式化分区 /dev/sdb3
# fsck
-t # -A # 依据/etc/fstab的内容,将需要的设备扫描一遍 -a # 自动修复检查到的有问题的扇区 -y # 与a类似 -C # 可以再检验过程中使用一个直方图来显示目前进度 EXT2/EXT3的额外功能 -f # 强制检查 -D # 针对文件系统下的目录进行优化配置
# 检验 /dev/sdb2
[[email protected] 桌面]# fsck -Cf /dev/sdb2 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 /lost+found未找到.创建<y>? (下面省略)
# badblocks
用来检擦硬盘或者软盘扇区有没有环轨的命令
[[email protected] 桌面]# badblocks -xxx [设备名称] -s # 在屏幕上列出进度 -v # 可以在屏幕上看到进度 -w # 使用写入的方式来测试
# 例子
[[email protected] 桌面]# badblocks -sv /dev/sdb2
# 挂载
[[email protected] 桌面]# mount /dev/sdb2 /test_sdb1/
[[email protected] ~]# mkdir /test1 // 创建用来挂载的文件夹 [[email protected] ~]# mkdir /test2 // 创建用来挂载的文件夹 [[email protected] ~]# mkdir /test3 // 创建用来挂载的文件夹 [[email protected] ~]# mount /dev/sdb3 /test1/ // 挂载 [[email protected] ~]# mount /dev/sdb3 /test2/ [[email protected] ~]# mount /dev/sdb3 /test3/ [[email protected] ~]# mount /dev/sdb3 /opt/ [[email protected] ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 14987656 4414456 9805200 32% / tmpfs 502068 224 501844 1% /dev/shm /dev/sda1 487652 34962 427090 8% /boot /dev/sdb2 5039624 10248 4766716 1% /test_sdb1 /dev/sdb3 5039624 10264 4766700 1% /test1 /dev/sdb3 5039624 10264 4766700 1% /test2 /dev/sdb3 5039624 10264 4766700 1% /test3 /dev/sdb3 5039624 10264 4766700 1% /opt
# 当在挂载目录/opt下创建一个文件时,其它挂载目录下也会跟着创建
# 进入目录/opt/ [[email protected] ~]# cd /opt/ # 在/opt/下创建一个文件a.txt [[email protected] opt]# touch a.txt [[email protected] opt]# cd [[email protected] ~]# ls /opt/ a.txt lost+found [[email protected] ~]# ls /test1/ a.txt lost+found [[email protected] ~]# ls /test2/ a.txt lost+found # 将文件a.txt删除 [[email protected] ~]# rm -rf /test1/a.txt [[email protected] ~]# ls /opt lost+found [[email protected] ~]# ls /test3 lost+found # 在/opt/下创建一个文件abc.txt [[email protected] ~]# touch /test3/abc.txt [[email protected] ~]# ls /opt/ abc.txt lost+found [[email protected] ~]# ls /test2/ abc.txt lost+found
# 卸载
[[email protected] ~]# umount /test3 [[email protected] ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 14987656 4414480 9805176 32% / tmpfs 502068 224 501844 1% /dev/shm /dev/sda1 487652 34962 427090 8% /boot /dev/sdb2 5039624 10248 4766716 1% /test_sdb1 /dev/sdb3 5039624 10264 4766700 1% /test1 /dev/sdb3 5039624 10264 4766700 1% /test2 /dev/sdb3 5039624 10264 4766700 1% /opt
## 当opt的源设备被卸载时,再在opt中新建文件时,系统就会去找opt的上一层目录(根目录),看根目录挂载在哪个分区中,将新建的文件放在该分区中
[[email protected] ~]# umount /opt [[email protected] ~]# ls /opt rh [[email protected] ~]# touch /opt/abc.txt [[email protected] ~]# ls /opt abc.txt rh [[email protected] ~]# [[email protected] ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 14987656 4414480 9805176 32% / # 根目录在sda2上 tmpfs 502068 224 501844 1% /dev/shm /dev/sda1 487652 34962 427090 8% /boot /dev/sdb2 5039624 10248 4766716 1% /test_sdb1 /dev/sdb3 5039624 10264 4766700 1% /test1 /dev/sdb3 5039624 10264 4766700 1% /test2
待补充...
以上是关于Linux基础_磁盘分区的主要内容,如果未能解决你的问题,请参考以下文章