Linux磁盘管理

磁盘使用之前需要先格式化,格式化之前需要先分区,也就先分区再格式化才能使用

linux磁盘管理大致分为五个步骤:首先添加相应的磁盘(/dev/sda、sdb、sdc、sde...),然后是对相应磁盘分区,分区完之后是格式化,最后是挂载使用,不用的时候卸载。

一、添加相应的磁盘

系统关机的情况下添加相应的磁盘,以VirtualBox安装的Ubuntu为例

linux环境下面硬盘设备的命名规则一般都以"/dev/sd"开头,而一台主机可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配)

二、磁盘分区

1、查看当前linux系统所识别到的所有磁盘设备

sudo fdisk -l
yishurufa@ubuntu:~$ sudo fdisk -l
[sudo] yishurufa 的密码: 
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xbcdcf9fc

设备       启动  起点      末尾      扇区  大小 Id 类型
/dev/sda1  *     2048 209713151 209711104  100G 83 Linux


Disk /dev/sdb:100 GiB,107374182400 字节,209715200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x040d4f91

设备       启动  起点      末尾      扇区  大小 Id 类型
/dev/sdb1        2048 209715199 209713152  100G 83 Linux

也可以通过查看/dev/sd*来确定当前系统识别到了哪些磁盘设备

ls /dev/sd*

系统所识别到的磁盘(U盘)设备都在/dev目录下面,以sd开头。

sda代表系统所识别到的第一块磁盘,sda1代表第一块磁盘的第1个分区,sda2代表第一块磁盘的第2个分区

sdb代表系统所识别到的第二块磁盘,sdb1代表第二块磁盘的第1个分区,sdb2代表第二块磁盘的第2个分区

...以此类推

yishurufa@ubuntu:~$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sdb  /dev/sdb1

2、磁盘分区

MBR分区方式:传统的磁盘分区方式(小于2TB容量的磁盘),这里以MBR分区方式来对磁盘分区

GPT分区方式:解决了传统MBR无法逾越2TB的限制,如果磁盘容量大于2TB就用GPT分区

fdisk命令可以很方便对磁盘进行分区,格式为“fdisk [磁盘盘符]”,下图为fdisk命令常用的参数

三、磁盘格式化

mkfs命令可以对磁盘分区进行格式化,下面是支持的格式,要格式化为对应的格式选择对应的命令,一般linux环境下常见的以mkfs.ext4格式化分区

yishurufa@ubuntu:~$ sudo mkfs
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.vfat
mkfs.bfs     mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.ntfs

例如我们要把系统识别到的第二块磁盘的第一个分区格式化成ext4格式

sudo mkfs.ext4 /dev/sdb1

四、挂载硬件设备

1、手动挂载

mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”,例如我们要将系统识别到的第二块磁盘的第一个分区挂载到/mnt/backup这个目录下

sudo mount /dev/sdb1 /mnt/backup

2、自动挂载

上面手动挂载方式挂载的设备当系统重启后会失效,如果我们想让设备“永久”挂载到指定位置,就需要将挂载信息按照指定格式写入到配置文件/etc/fstab当中

获取磁盘分区对应的UUID、label、文件系统格式等信息

sudo blkid

下面是笔者电脑上所有磁盘分区对应的UUID、label、文件系统格式等信息 

yishurufa@ubuntu:~$ sudo blkid
[sudo] yishurufa 的密码: 
/dev/sda1: UUID="89be5959-7e7a-413e-9217-94cc6f3e52bb" TYPE="ext4" PARTUUID="714f6796-01"
/dev/sda5: UUID="54c1dedf-8209-4205-a13e-49662f17f074" TYPE="swap" PARTUUID="714f6796-05"
/dev/sdb1: UUID="ff81e0cb-e0b2-495e-ab26-468aca79a088" TYPE="ext4" PARTUUID="4f4d13ec-01"
/dev/sdc1: UUID="8a6489a0-e565-4084-a5c7-de8322c3d278" TYPE="ext4" PARTUUID="49aec41c-01"
/dev/sdd1: UUID="a10131bb-6baa-4dba-a51d-35dc2df4ef4a" TYPE="ext4" PARTUUID="5e450794-01"
/dev/sde1: UUID="8b616502-41e0-42cf-b05b-f169e19cb4f2" TYPE="ext4" PARTUUID="7f293960-01"
yishurufa@ubuntu:~$ 

下面是笔者电脑上面自动挂载的配置信息,配置文件为/etc/fstab,只需要在配置文件后面追加就即可,每一个挂载点占一行

格式为“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”

yishurufa@ubuntu:~$ cat /etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=89be5959-7e7a-413e-9217-94cc6f3e52bb /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=54c1dedf-8209-4205-a13e-49662f17f074 none            swap    sw              0       0
UUID=ff81e0cb-e0b2-495e-ab26-468aca79a088	/home/yishurufa/workspaces	ext4	defaults	0	0
UUID=8a6489a0-e565-4084-a5c7-de8322c3d278	/home/yishurufa/android_workspaces/android_v3	ext4	defaults	0	0
UUID=a10131bb-6baa-4dba-a51d-35dc2df4ef4a	/home/yishurufa/android_workspaces/android_TS	ext4	defaults	0	0
UUID=8b616502-41e0-42cf-b05b-f169e19cb4f2	/home/yishurufa/android_workspaces/android_sop	ext4	defaults	0	0
yishurufa@ubuntu:~$ 

添加后通过sudo mount -a命令检测,如果没报错就说明配置没问题。这个命令会去检测配置文件/etc/fstab中所有需要挂载的设备,没挂载上的会自动挂载

yishurufa@ubuntu:~$ sudo mount -a
yishurufa@ubuntu:~$ 

挂载完后可以通过df -h命令查看所有的设备挂载信息

yishurufa@ubuntu:~$ df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            2.9G     0  2.9G    0% /dev
tmpfs           597M  9.2M  587M    2% /run
/dev/sda1        98G  7.0G   86G    8% /
tmpfs           3.0G  212K  3.0G    1% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           3.0G     0  3.0G    0% /sys/fs/cgroup
/dev/sdb1        99G  800M   93G    1% /home/yishurufa/workspaces
/dev/sdc1       296G  125G  156G   45% /home/yishurufa/android_workspaces/android_v3
/dev/sde1       493G  124G  344G   27% /home/yishurufa/android_workspaces/android_sop
/dev/sdd1       296G  112G  169G   40% /home/yishurufa/android_workspaces/android_TS
share           922G  809G  114G   88% /media/sf_share
tmpfs           597M   60K  596M    1% /run/user/1000
yishurufa@ubuntu:~$ 

五、卸载硬件设备

umount命令用于撤销已挂载的设备文件,格式为“umount [挂载点/设备文件]”,例如我们要将上面/dev/sdb1挂载到/mnt/backup这一步撤销

sudo umount /dev/sdb1

或者是

sudo umount /mnt/backup

Logo

更多推荐