linux下磁盘分区,格式化和挂载

按照规定,整个硬盘只能有4个主分区,包括基本分区和扩展分区。扩展分区最多只能有1个,扩展分区里可以分出多个任意大小的逻辑分区,而基本分区不可再分。

我的硬盘有1T,sda1为系统盘,有30G,sda2有100G,sda5为swap分区7.9G,是逻辑分区,sda4是W95 FAT32(LBA)分区7.9G,也是逻辑分区(我也不懂这个盘拿来做什么,为什么会自带一个这个分区),剩下的800+G是空的。
其中swap分区又叫可交换分区,可以用于自动扩展内存,充当内存 .swap 文件有时会存在这个分区里。

现在我要删除那两个逻辑分区,新建一个500G的基本分区,把剩下的分区建成扩展分区,从里面分出swap分区。

  • 删除分区
  • 添加分区
    • 更改文件格式类型
  • 格式化
  • 挂载
    • 普通文件系统的挂载
      • 1即时挂载
      • 2开机自动挂载
    • swap分区的挂载
      • 1创建和激活
      • 2开机自动挂载
  • 检查分区

删除分区

$ sudo fdisk /dev/sda #进入fdisk工具,输出各个磁盘状况

Command (m for help):
$ d #删除一个分区

Partition number (1-5, default 5):
$ 5 #删除第5个分区
Partition 5 has been deleted.
这时还没有保存,输入w 保存;输入q不保存直接退出

之后同样删除sda4分区

添加分区

$ sudo fdisk /dev/sda #进入fdisk工具,输出各个磁盘状况

Command (m for help):
$ n #新建一个分区
之后提示是新建一个基本分区还是扩展分区,p是基本分区,e是扩展分区
Command action:
p primary
e extended

$ p

partition number(3-4):
$ 3

然后就是输出起始柱面First cylinder (x~xxx, default x):
default就是紧接前一个分区,最好是defualt,直接回车就可以。
输入结束柱面:Last cylinder or +size or +sizeM or +sizeK (xx~xxx, default xx):+500G #直接输入想要分区大小即可,例如+50M,+50G

Command (m for help): p #打印分区列表
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 58593279 58591232 28G 83 Linux
/dev/sda2 58593280 268308479 209715200 100G 83 Linux
/dev/sda3 268308480 1316884479 1048576000 500G 83 Linux

Command (m for help): w #保存
看到已经新建出一个sda3,500G,文件格式为83,linux文件系统。同样新建一个扩展分区sda4,和逻辑分区sda5(+8G).

将sda5改为swap文件系统:

更改文件格式类型

$ sudo fdisk /dev/sda

Command (m for help):l #列出文件格式代号

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext’d (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix

若要更改为swap,则代号为82
Command (m for help): t #更改文件格式类型

Partition number(1-5,default 5): 5 #要改的分区序号

Hex code (type L to list all codes):82 #格式类型序号

Command (m for help): w #保存,若不保存则q取消操作

这个时候系统会提示分区表还在使用中,还没更新,不用着急,新的分区还要格式化,挂载才能使用。挂载后重启即可更新分区表。

格式化

添加分区之后要将磁盘格式化为某个具体的文件格式,这样才能正常存储和读取。

$ sudo mkfs -t [格式类型] [磁盘路径] 或

$ sudo mkfs.[格式类型] [磁盘路径]

我看到我的sda1是ext4的,于是也将分区格式化成ext4的:
$ sudo mkfs -t ext4 /dev/sda3

这样就完成格式化了!
但是如何能使用磁盘呢?这就要将设备挂载到一个文件夹上,在该文件夹上存取的数据实际上就是在对应磁盘上。

挂载

普通文件系统的挂载

1)即时挂载

例如我要在把sda3挂载在根目录下/myworld文件夹
$ sudo mkdir /myworld #新建文件夹

$ sudo mount /dev/sda3 /myworld
这样磁盘就挂载在myworld文件夹里了!这个文件夹的属性也可以看到这个文件夹的空间为500G
但是要是重启电脑,就要重新挂载,所以要想个办法开机自动挂载

2)开机自动挂载

打开/etc/fstab文件,修改这个文件可实现开机自动挂载
在最后一行按照格式添加需要挂载的磁盘和信息即可。

《file system》 《mount point》 《type》 《options》 《dump》 《pass》
<设备路径> <挂载路径> <文件格式> <权限等选项> <是否需要转存> <扫描优先级>

i.options
是指定加载该设备的文件系统的特定参数等选项,多个参数由逗号分隔。大多数的系统使用defaults就可以满足需求,其他常见选项有:
- ro 以只读模式加载该文件系统
- sync 不对该设备的写操作进行缓存处理,这可以防止非正常关机时破坏文件系统,但是减低计算机的速度
- user 允许普通用户加载该文件系统
- quato 强制在该文件上饥溺羞赧感磁盘定额限制
- exec 允许所有用户运行该文件系统
ii.dump
该选项被dump命令使用检查一个文件系统是否需要转存(备份),不需要为0,需要为1
iii.pass
该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序根文件系统/的值应该为1,其他文件系统应该为2.
所以我的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).
#
#                
# / was on /dev/sda1 during installation
UUID=8568de3d-153e-4029-93b4-41deb41c46f6 /               ext4    errors=remoun$
# swap was on /dev/sda5 during installation
UUID=c848fc85-5156-42b0-b111-d1a5164c56e2 none            swap    sw           $
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/sda2       /home/sda2       ext4       auto,users,exec      1       2
/dev/sda3       /myworld         ext4       auto,users,exec      1       2

保存退出,下次开机即可自动挂载,不用再每次用mount命令挂载了

swap分区的挂载

1)创建和激活

swap的挂载与普通文件系统不同,需要创建和激活

$sudo mkswap /dev/sda5 #创建swap

Setting up swapspace version 1, size=…创建完成

$sudo swapon /dev/sda5 #激活swap

系统若提示要输入y/n,y就可以了,然后会给一个UUID,就激活成功了!记住,要记下这个UUID。

2)开机自动挂载

我的UUID=c848fc85-5156-42b0-b111-d1a5164c56e2,我的磁盘本来有swap,在用来替换上面fatab中的即可。
若本来fstab中没有挂载过swap,则在fstab中追加:
UUID=xxx none swap sw(或defaults) 0 0
保存,重启机器即可

检查分区

分区后完成了上面步骤,若不能正常开机,检查fstab文件也没有写错,可以使用e2fsck检查分区

$ sudo e2fsck /dev/sda3
一路yes, 一会儿就修复完成,再挂载,重启检查系统,OK!

你可能感兴趣的:(linux)