文章目录
查看磁盘设备
使用df
或者ls
命令查看Linux系统的磁盘设备,下图的sdb1
就是我接入Ubuntu的一个SD卡,sda
是系统硬盘(虚拟机的虚拟磁盘)。
文件系统格式简介
我们可以在Ubuntu下使用下面的方式查看各磁盘的文件系统类型,
上图显示,linux系统分区的文件系统类型为ext4
,SD卡的文件系统为ntfs
,下面是常见文件系统的简介:
EXT
FAT
FAT16
FAT32
exFAT
NTFS
磁盘管理命令
fdisk
是一个磁盘管理命令,使用起来比较简单,它可用来查看/修改磁盘分区信息。
如果只是看磁盘信息,可以使用sudo fdisk -l
在终端上输入sudo fdisk /dev/sdb
可以进入sdb的磁盘管理,同时终端会打印如下信息,提示所有可用操作。
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
比较常用的命令如下:
- p 显示现有的分区
- n 建立新的分区
- t 更改分区类型
- d 删除现有的分区
- w 保存分区更改并退出
- q 不保存退出
磁盘分区
接下来我们来对SD卡进行分区操作,我打算把SD卡(/dev/sdb)分成两个分区,并设置不同的文件系统。
首先,在sudo fdisk /dev/sdb
进入磁盘管理的情况下输入p
,查看磁盘分区情况,磁盘分区是以扇区为单位,一个扇区512字节,该SD卡总共有15603712
个扇区。
输入d
将分区/dev/sdb1删除,然后输入n
新建一个分区,
按照提示分别输入分区选项,选择主分区,分区号为1,起始扇区为2048,由于我想把SD卡平分成两个分区,所以我的截止扇区=(最大扇区-起始扇区)/ 2,
再用同样的步骤,创建第二个分区,将SD卡剩余空间分配完,
最后记得一定要保存后再退出,虽然此时分区制作完成,但这两个分区还不能使用,因为还没进行格式化(没有文件系统)。
磁盘格式化
Linux下的格式化命令是mkfs
,它能格式化的系统包括:
sudo mkfs.ntfs /dev/sdb1
可以把/dev/sdb1分区格式化为 NTFS 文件系统(竟然用了十几分钟,太慢了。。。)
此时SD卡的1分区已经是NTFS文件系统了。
同样的步骤,我将第二分区改为FAT32(VFAT)文件系统,这次很快,格式化前,(如果分区已经有文件系统且被挂载)一定要先取消挂载。
继续用sudo fdisk -l
,发现二号分区并没有变化(但其实已经是FAT32系统了)
使用parted
命令也可以查看文件系统类型。
挂载/卸载磁盘
磁盘分区只有挂载后才能使用,一般的发行版Linux都会有自动挂载功能,比如Ubuntu将外部磁盘挂载到了/media目录下,
我们也可以使用mount
命令进行手动挂载,挂载之前,如果目标分区已经被其他目录挂载,需要使用umonut
进行卸载,下图我使用sudo mount -t ntfs /dev/sdb1 /mnt/
将/dev/sd1分区挂载到了/mnt目录下(个人习惯不加-t
参数,但是不知道有什么后果)。