大家好,又见面了,我是你们的朋友全栈君。
查看磁盘设备
使用df
或者ls
命令查看Linux系统的磁盘设备,下图的sdb1
就是我接入Ubuntu的一个SD卡,sda
是系统硬盘(虚拟机的虚拟磁盘)。
文件系统格式简介
我们可以在Ubuntu下使用下面的方式查看各磁盘的文件系统类型,
上图显示,linux系统分区的文件系统类型为ext4
,SD卡的文件系统为ntfs
,下面是常见文件系统的简介:
EXT
EXT是延伸文件系统(英语:Extended file system,缩写为 ext或 ext1),也译为扩展文件系统,一种文件系统,于1992年4月发表,是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。它是在linux上,第一个利用虚拟文件系统实现出的文件系统,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系统。目前的最新版本为5.0,于2014年6月22日发布。
EXT它是专门为Linux设计的,拥有最快的速度和最小的CPU占用率。
Linux作为自由软件,赢得了许多用户,其磁盘分区格式一种是Linux Native主分区,另一种是Linux Swap交换分区,并且主分区和交换分区都采用同一种格式,既Native和Swap格式。
这两种分区格式的安全和稳定性相当好,使用Linux操作系统死机的机会将大大减少。但是,目前支持这类分区格式的操作系统也有Linux和Android。——百度百科
FAT
FAT是文件配置表(英语:File Allocation Table,首字母缩略字:FAT),是一种由微软发明并拥有部分专利的文件系统,供MS-DOS使用,也是所有非NT核心的微软窗口使用的文件系统。
FAT文件系统考虑当时电脑性能有限,所以未被复杂化,因此几乎所有个人电脑的操作系统都支持。这特性使它成为理想的软盘和存储卡文件系统,也适合用作不同操作系统中的数据交流。现在,一般所讲的FAT专指FAT32。
但FAT有一个严重的缺点:当文件删除后写入新数据,FAT不会将文件整理成完整片段再写入,长期使用后会使文件数据变得逐渐分散,而减慢了读写速度。碎片整理是一种解决方法,但必须经常重组来保持FAT文件系统的效率。——百度百科
FAT16
FAT(File Allocation Table)是“文件分配表”的意思。顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。不同的操作系统所使用的文件系统不尽相同,在个人计算机上常用的操作系统中,MS-DOS 6.x及以下版本使用FAT16。操作系统根据表现整个磁盘空间所需要的簇数量来确定使用多大的FAT。所谓簇就是磁盘空间的配置单位,就象图书馆内一格一格的书架一样。FAT16使用了16位的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT16。
——百度百科
FAT32
FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来。FAT32是从FAT和FAT16发展而来的,优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便。缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。
——百度百科
exFAT
exFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表)是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。对于闪存,NTFS文件系统不适合使用,exFAT更为适用。对于磁盘则不太适用。
——百度百科
NTFS
NTFS(New Technology File System)是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可实现安全性,并支持跨越分区。
——百度百科
磁盘管理命令
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
参数,但是不知道有什么后果)。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140404.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...