磁盘分区,创建文件系统
linux上,不同的设备使用不同的名称,a-z,如:/dev/sda,/dev/sdb等,相同设备的不同分区使用不同的数字,如:/dev/sda1,/dev/sda2等等。磁盘基于MBR管理时最多只能有4个主分区,或者使用三个主分区加上一个扩展分区,扩展分区下可以有多个逻辑分区,一般情况下逻辑分区开始从5编号。单个磁盘如果大于2T MBR的管理模式是不识别的。
磁盘分区
分区工具:fdisk,parted,sfdisk
查看分区:
fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a6939
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 821247 409600 83 Linux
/dev/sda2 821248 4954111 2066432 82 Linux swap / Solaris
/dev/sda3 4954112 41943039 18494464 83 Linux
sectors扇区个数,boot列有星号的是引导分区。Sector size扇区的逻辑大小物理大小,I/O size 传输的最佳值,Disk label type 磁盘标识类型,Disk identifier 磁盘标识符。
管理分区:
fdisk /dev/sda 命令加上磁盘名称
创建分区:
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
No free sectors available
进入到管理工具后,输入n表示创建一个磁盘分区,3 primary, 0 extended, 1 free 这一串表示已经有三个主分区了,0个扩展分区。
添加磁盘:
No free sectors available 表示没有可用的磁盘空间了,可以添加一块新的磁盘。添加完成后重启系统即可,再用 fdisk -l 命令即可看到新添加还未分区的磁盘了。
Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
然后就可以开始创建分区了,一般情况下都是创建三个主分区和一个扩展分区,创建新分区使用n命令,表示new,然后根据提示操作即可。
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free) 主分区
e extended 扩展分区
Select (default p): 选择分区类型,默认回车即可
Using default response p
Partition number (3,4, default 3): 创建第几分区,默认回车即可
First sector (4196352-10485759, default 4196352):
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-10485759, default 10485759): +1G
Partition 3 of type Linux and of size 1 GiB is set 完成
保存分区:
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
创建完成后使用 w 命令保存分区,这样刚刚的分区信息就会被写入到磁盘中,磁盘之前的数据会被清除掉。
完成后查看 /proc/partitions 这个文件,这个文件是是否被内核识别的文件。只有在文件中查看到刚刚分区的磁盘内核说明已近被内核识别了。如果没有识别使用partx -a /dev/sdb 命令,可以自动扫描磁盘并添加。然后再查看/proc/partitions文件。刚分区的磁盘就会添加到文件中了。或者使用partporbe命令,或partporbe /dev/sdb。
fdisk工具中的命令:
p print, 显示已有分区
n new,创建
d delete,删除
w write,写入磁盘并退出
q quit,放弃更新并退出
m 获取帮助
l 列表所分区id
t 调整分区id
文件系统
分区完成以后就可以创建文件系统了,linux常见的文件系统有ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap。
创建文件系统的常用命令:
mkefs 创建ext文件系统
mke2fs 创建ext2文件系统
mkfs.ext3 创建ext3文件系统
mkfs.ext4 创建ext4文件系统
mkreiserfs 创建ReiserFS文件系统
jfs_mkfs 创建JFS文件系统
mkfs.xfs 创建XFS文件系统
mkfs.zfs 创建ZFS文件系统
mkfs.btrfs 创建Btrfs文件系统
使用方法为命令加上分区名称:如 mkfs.ext4 /dev/sdb1 其他选项查看手册,默认情况下不加选项根据默认值即可创建文件系统。
使用查看文件 /proc/filesystems 可以看到系统支持的文件系统类型。
格式化时如果之前有文件系统使用 -f 选项覆盖之前的文件系统。
例:mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25376 inodes, 101376 blocks
5068 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1952 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
查看UUID信息:
创建文件系统完成,可以使用blkid命令查看分区的UUID,这个UUID是用来区分磁盘的,在开机挂载文件/etc/fstab中会用到。
blkid /dev/sdb5
/dev/sdb5: UUID="4c93c1ab-58cc-4a0d-a471-daceefa76729" TYPE="ext4"
-U UUID 根据指定的UUID来查找对应的设备
-L LABEL 根据指定的LABEL来查找对应的设备
创建交换分区mkswap
创建交换分区的前提是将磁盘的分区ID类型调整为为82
mkswap [options] device
-L 'LABEL'
文件系统检测:
fsck.FS_TYPE,FS_TYPE一定要与分区上已经文件类型相同-a 自动修复错误,-r 交互式修复错误。ext系列文件专用的检测修复工具e2fsck,使用-f可强制修复,-y为自动回答。