目的:对硬盘U盘等磁盘进行分区、格式化、挂载、分区扩容
基础知识:一块硬盘可以有多个分区,如同windows下的c盘就是一个分区,D盘就是另外一个分区,实际可能C盘D盘在一块硬盘上,即只有一个硬盘,我们分成多块使用。linux下的一块硬盘也能分成多块使用,但是与windows有些差别,主要在挂载上。windows是不需要挂载就能用的,linux需要挂载才能用。有的linux会自动挂载,有的不会。我们也可以把系统自动挂载的目标目录,更改成到其他目录。当然不自动挂载的,我们需要挂载后再使用。
1.查看磁盘信息
sudo fdisk -l #查看系统有几块硬盘和每个硬盘的分区情况
注:需要记住自己要操作的硬盘是哪一个,比如/dev/sda,还需要记住这块硬盘的分区方式。
sudo df -h #查看硬盘挂载情况和使用情况
注:这个只显示挂载的分区,不挂载的不显示。
2.分区的删除和创建
(注意!!!可能可能会丢失被操作硬盘里的数据,注意备份!!其实当我们只删除分区表时,数据不会删除,只要再建一个和原来起始位置一样,结束位置大于等于以前的分区,文件依然存在,这也是一种分区扩容方法。)
电脑的硬盘有两种分区方式:MBR和GPT。MBR 分区表需要使用 fdisk 分区, GPT 分区表需要使用 gdisk 分区(老电脑和虚拟机一般为MBR)
查看分区表分区方式:
fdisk -l #磁盘类型是dos的是MBR,不是的是GPT
首先进入fdisk或gdisk工具:
sudo fdisk /dev/sda #如果为MBR类型
或
sudo gdisk /dev/sda #如果为GPT类型
进入后m是帮助,可以显示出所有可用的命令
下面列几个常用的:
p为打印当前分区表
d为删除分区
n为新建分区
w为保存并退出
q为不保存并退出
注意:数据的大小是按块来计算的,不是按MB、GB来计算。一个块多大,使用p时可以看出来,我的一个section是512B。
分区新建、删除之后,需要使用w保存之后再重启机器才会生效。
3.分区的格式化
我们可以使用 mkfs 命令格式化分区,具体命令如下:
sudo mkfs -t 文件系统格式 分区 ,例如:
sudo mkfs -t ext4 /dev/sda1
注:sudo mkfs -t 之后按两下tab可以显示出支持的格式。
4.分区的挂载
分区的挂载就像给分区建一个快捷方式,挂载之后可以通过挂载的目录来访问分区。Linux外接U盘或移动硬盘时,有的版本会自动挂载,有的不会。会自动挂载的版本会将硬盘挂载到一个指定目录,而不自动挂载的系统,我们需要挂载后才能访问分区。所以如果我们需要进行挂载和重新挂载是就需要如下操作。
使用下面的命令可以查看硬盘挂载情况。
sudo df -h #查看硬盘挂载情况
(1)临时挂载方法(重启后失效):
sudo mkdir /samda #创建挂载的目标文件夹
sudo chmod 777 /samba #添加权限(按需使用)
sudo umount /dev/sda1 #取消已经的挂载(按需使用)
sudo mount -o /dev/sda1 /samda #进行挂载
现在已经挂载完成,可以查看挂载情况:
sudo df -h #查看硬盘挂载情况
出现里面的16gbU盘挂载到了/samda
如果用完后卸载挂载,使用如下命令:
sudo umount /samda
(2)开机自动挂载磁盘方法:
sudo vi /etc/fstab
最后一行加入
/dev/sda1 /samba vfat rw,defaults 0 0
注意:如果用这种方法指定某磁盘开机自动挂载,当没有插入该设备时无法正常开机(一般是U盘),会进入emergency模式,网络无法连接上。这时需要用串口进入调试界面重复以上步骤,删除自动挂载该磁盘的那一行脚本。
5、分区扩容
分区扩容,有两种情况
(1)、在需要扩容的分区后边有空闲的空间,我们只想把该分区的结束位置向后调整一下。(相当于windows里的扩展卷)
(2)、不满足第一种情况的。比如一个硬盘只有一个分区硬盘已满;这块分区后边没有可用的空间的。
1.对第一种情况:
我们进入fdisk /dev/sda
p打印分区表,记住目标分区的名字和起始号
d删除想要扩容的分区
n新建分区 ,名字为以前的,起始地址也是以前的,结束地址设置成你想要的。
w写入分区表并退出
sudo reboot #重启
sudo resize2fs /dev/分区对应的名字
例如
sudo resize2fs /dev/sda1
2.对第二种情况,做法是:把两块或多块物理上不连续的分区(可以上同一硬盘上的,也可以是不同硬盘上的),使用软件拼成一块。(这里太长了,未完待续)