linux磁盘管理
一、磁盘类型
SATA,SCSI,SAS类型的磁盘,在Linux中用sd来表示。
其中第一块硬盘为sda,第二块二sdb,以此类推。
第一块硬盘的第一个分区为sda1。
nvme类型的磁盘,在Linux中使用nvmeXnYpZ进行表示。
X:数字,表示第几通道的NVME类型,第一个通道用0表示
Y:数字,表示第几块硬盘,第一个硬盘用1表示
Z:数字,表示第几个分区,第一个分区用1表示
virtio-block类型:
在Linux中用vd表示,第一块硬盘为vda,第一个硬盘的第一个分区为vda1
fdisk -l --查看并确认磁盘的设备类型。
Device: 分区的设备文件名称。
Boot:是否是引导分区。如果是,则要有 “*”标志。
Start:该分区在磁盘中的起始位置(柱面数)。
End:该分区在磁盘中的结束位置(柱面数)。
sectors: 扇区,该分区的柱面数之和
size:大小
Id:分区对应的系统ID号,83表示Linux中的分区,82为swap分区。
type: 分区类型。
[root@ws ~]# fdisk -l
磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f122e
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 106956799 52428800 83 Linux
/dev/sda3 106956800 115345407 4194304 82 Linux swap / Solaris
分区方案:
MBR–Master Boot Record 主引导记录,最多创建15个分区。最大的磁盘和分区的大小为2TB
MBR分区直接存储数据和引导记录。
磁盘中的第一个扇区就是MBR,也叫做主引导扇区。大小为512个字节。
其中主引导记录(启动代码)占用其中的446个字节,分区表占用了64个字节(每个分区定义的是16个字节),
结束标志占用2个字节。
新建分区:
fdisk /dev/sdb
n:新建分区
d:删除分区
p:查看分区表
t:修改分区的system id 号
l:列出所有的分区类型
q:不保存退出
w:保存退出
[root@ws ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 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 //修改分区的id号
u change display/entry units
v verify the partition table
w write table to disk and exit //保存退出
x extra functionality (experts only)
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free) //extended是扩展分区
e extended
Select (default e): e
已选择分区 4
起始 扇区 (115345408-209715199,默认为 115345408):
将使用默认值 115345408
Last 扇区, +扇区 or +size{K,M,G} (115345408-209715199,默认为 209715199):
将使用默认值 209715199
分区 4 已设置为 Extended 类型,大小设为 45 GiB
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (115347456-209715199,默认为 115347456):
将使用默认值 115347456
Last 扇区, +扇区 or +size{K,M,G} (115347456-209715199,默认为 209715199):+500M
分区 5 已设置为 Linux 类型,大小设为 500 MiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@ws ~]# partprobe /dev/sda //同步到磁盘
[root@ws ~]# mkfs.xfs /dev/sda5 //将sda5格式化
meta-data=/dev/sda5 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@ws ~]# blkid //查看uuid
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="23ebe59f-195e-449e-afb8-ac20d404bc45" TYPE="xfs"
/dev/sda2: UUID="cb56db34-2508-4e45-9737-d8779f561a46" TYPE="xfs"
/dev/sda3: UUID="c686d778-b62c-4dcd-984c-c6f8f040709c" TYPE="swap"
/dev/sda5: UUID="24d1f5ef-2df2-460e-b522-8c2a2312940d" TYPE="xfs"
[root@ws ~]# mkdir /test1 创建一个目录
[root@ws ~]# vim /etc/fstab 写一个永久的挂载点
[root@ws ~]# mount -a
[root@ws ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 50G 3.6G 47G 8% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 13M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 163M 852M 17% /boot
tmpfs tmpfs 394M 28K 394M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sda5 xfs 497M 26M 472M 6% /test1
GPT–GUID Partition Table–全局唯一表示分区表。
1、支持2TB以上的大硬盘
2、每个磁盘的分区个数几乎没有限制(最多只允许划分128个分区)
3、分区大小几乎没有限制,8ZB
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,
可以通过另外一份恢复
GPT分区的数据和引导记录时分开存储的。
parted /dev/sda print —列出某个硬盘的分区表
1MB=10^3=1000KB
1MiB=2^10=1024KiB
若要对新的磁盘进行分区,首先需要为其写入磁盘标签。
将MBR磁盘标签写入磁盘
parted /dev/sdb mklabel msdos
将GPT磁盘标签写入磁盘
parted /dev/vdb mklabel gpt
创建分区–创建MBR磁盘分区
parted /dev/sdb
mklabel —创建标签
msdos —将MBR磁盘标签写入磁盘
unit —设置空间大小单位
MB —设置为MB
mkpart —新建分区
primary —选择分区类型
xfs —选择分区文件系统类型,此时是没有格式化的,只是标记
1MB —起始大小
501MB —结束大小
quit —退出,默认保存退出
创建完成后需要执行udevadm settle,
等待系统检测新分区并在/dev目录下创建关联的设备文件
parted /dev/sdc mklabel msdos
parted /dev/sdc mkpart primary xfs 1MB 501MB
parted -l —列出所有的磁盘上的分区布局
创建分区–创建GPT磁盘分区
方法和创建MBR磁盘分区类似。
格式化
mkfs.xfs /dev/sdc1
mkfs.ext4 /dev/sdc2
手动挂载–临时挂载
mount 设备 挂载点
永久挂载—必须把挂载信息写入到/etc/fstab文件中。
注意:该文件中的挂载信息不能写错,一旦写错,系统重启后将无法
正常进入操作系统。
/etc/fstab文件中每个字段的意思如下:
第1字段:设备名或者是设备的UUID(建议使用UUID)
第2字段:挂载点(如果设备为交换分区时,此处应写为swap)
第3字段:文件系统类型,如xfs、ext4、swap等
第4字段:挂载参数,即mount -o 选项后可以使用的参数。
如:defaults(默认参数)、rw(可写)、ro(只读)、noexec(禁用执行程序)
第5字段:表示文件系统是否需要dump备份。(dump是一个备份工具),1为需要备份,
0为不需要备份,即被dump所忽略。
第6字段:该数字用户决定系统在启动时是否使用fsck命令,以进行磁盘检查的顺序。
0表示不检查,1表示优先检查,2表示其次检查。
xfs的文件系统不适用fsck检查,即可设置为0.
1、对那个硬盘进行分区
parted /dev/sdc
mklabel ----选择使用哪种分区方式进行对该磁盘进行分区
msdos ----选择MBR方式进行分区
unit ----设置空间大小的单位
MB
mkpart ----新建分区
primary ----选择分区的类型(primary主分区,extended扩展分区)
xfs ----选择文件系统,此处只是标记,没有格式化。
1MB ----起始大小
501MB ----结束大小
quit —退出,默认是保存退出
[root@ws ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
1 1049kB 1075MB 1074MB primary xfs 启动
2 1075MB 54.8GB 53.7GB primary xfs
3 54.8GB 59.1GB 4295MB primary linux-swap(v1)
4 59.1GB 107GB 48.3GB extended
5 59.1GB 59.6GB 524MB logical xfs
警告: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
Model: NECVMWar VMware IDE CDR10 (scsi)
Disk /dev/sr0: 4589MB
Sector size (logical/physical): 2048B/2048B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system 标志
2 4907kB 40.6MB 35.7MB primary
[root@ws ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
align-check help mktable quit 自动保存退出 resizepart set version
disk_set mklabel 打标签 name rescue rm 删除分区 toggle
disk_toggle mkpart 新建分区 print 打印分区表 resize select unit 设置单位
(parted)
(parted) mklabel
新的磁盘标签类型?
aix amiga bsd dvh gpt loop mac msdos pc98 sun
(parted) unit
Unit? [compact]?
% chs cyl GiB kiB MiB TB
B compact GB kB MB s TiB
(parted) mkpart
分区名称? []?
文件系统类型? [ext2]?
起始点? 10MiB
结束点? 510MiB
(parted) unit
Unit? [GiB]? MiB
(parted) quit
信息: You may need to update /etc/fstab.
[root@ws ~]# udevadm settle 同步磁盘
[root@ws ~]# mkfs.ext4 /dev/sdb1 格式化
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@ws ~]# mkdir /test2
[root@ws ~]# vim /etc/fstab
[root@ws ~]# mount -a
[root@ws ~]# blkid /dev/sdb1 //查看uuid
/dev/sdb1: UUID="40034c71-62ff-49ac-94fb-e2c029347a45" TYPE="ext4" PARTUUID="20ad9e66-c9a3-4a02-9eab-765a15aa98bf"
[root@ws ~]# vim /etc/fstab
[root@ws ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 50G 3.6G 47G 8% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 13M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda5 xfs 497M 26M 472M 6% /test1
/dev/sda1 xfs 1014M 163M 852M 17% /boot
tmpfs tmpfs 394M 12K 394M 1% /run/user/42
tmpfs tmpfs 394M 0 394M 0% /run/user/0
/dev/sdb1 ext4 477M 2.3M 445M 1% /test2
非交互式创建swap分区
parted /dev/sdc mkpart primary linux-swap 1MB 501MB
mkswap /dev/sdc1
vim /etc/fstab
UUID=… swap swap defaults 0 0
swapoff -a ----关闭所有的交换分区
swapon -a ----开启所有的交换分区
[root@ws ~]# free -m
total used free shared buff/cache available
Mem: 3932 430 3083 19 417 3205
Swap: 4095 0 4095
[root@ws ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? MiB
(parted) mkpart
分区名称? []?
文件系统类型? [ext2]?
起始点? 520MiB
结束点? 1020MiB
(parted) quit
信息: You may need to update /etc/fstab.
[root@ws ~]# mkswap /dev/sdb2 //交换分区格式化
正在设置交换空间版本 1,大小 = 511996 KiB
[root@ws ~]# vim /etc/fstab
[root@ws ~]# swapon -a 开启所有的交换分区
[root@ws ~]# free -m
total used free shared buff/cache available
Mem: 3932 431 3078 19 422 3204
Swap: 4595 0 4595
创建磁盘
磁盘分区
步骤
1用parted /dev/sd? ?(a,b,c,d)
2 换单位
3 打标签 xfs、ext4、swap 自定义
4 新建分区
5 自动保存退出
同步磁盘 udevadm settle
格式化
创建目录
查看uuid
进入vim /etc/fstab
重新加载文件的数据
删除磁盘
进入vim /etc/fstab
umount /dev/sd?
1用parted /dev/sd? ?(a,b,c,d)
rm