一、磁盘分区
在Linux中,磁盘是通过分区来使用的。分区是将一个硬盘划分成几个逻辑部分来使用,在每个分区中可以存储不同的文件系统。因此,在挂载磁盘之前,我们需要先对磁盘进行分区。磁盘分区的过程可以通过命令行工具或图形界面工具来完成。
常用的磁盘分区工具有:
- cfdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR和GPT分区表。
- fdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR分区表。
- gdisk:命令行工具,适用于创建主分区、扩展分区和逻辑分区,支持GPT分区表。
- gparted:图形界面工具,适用于创建主分区、扩展分区和逻辑分区,支持MBR和GPT分区表。
分区的目的是将一个硬盘划分成多个逻辑部分,每个部分可以单独使用和管理。当然,分区并不是必需的,我们也可以直接将整个硬盘作为一个单一的分区进行挂载。
二、文件系统
在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。
在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。
例如,若要创建一个ext4文件系统,只需要运行以下命令:
1
|
mkfs.ext4 /dev/sdb1 |
其中”/dev/sdb1″表示要创建文件系统的分区。
三、挂载磁盘
在Linux中,挂载磁盘的命令为mount。在挂载磁盘之前,我们需要保证文件系统已经被创建,同时需要知道要挂载的设备和挂载点。
设备指的是要挂载的物理磁盘或分区,它的标识通常以/dev开头,后面跟着分区信息(如/dev/sda1)。
挂载点指的是要将设备挂载到哪个目录下,这个目录称为挂载点。挂载点通常是一个空目录,它必须存在于文件系统中才能被用作挂载点。
例如,我们要将一个ext4文件系统挂载到/mnt/data这个目录下,只需要运行以下命令:
1
|
mount /dev/sdb1 /mnt/data |
这里”/dev/sdb1″是要挂载的设备,”/mnt/data”是挂载点。
四、开机自动挂载
在Linux中,如果要让磁盘在每次开机后自动挂载到指定的目录下,我们需要将挂载信息写入/etc/fstab文件中。
/etc/fstab是Linux系统中用于存储文件系统挂载信息的文件。它包含了系统启动时需要挂载的所有文件系统的信息,以及挂载时使用的选项。
我们需要在/etc/fstab文件中添加一个新的行来描述我们要挂载的文件系统。每一行包含了如下信息:
- 设备:要挂载的设备名称,例如/dev/sdb1。
- 挂载点:要将设备挂载到哪个目录下。
- 文件系统类型:要挂载的文件系统类型,例如ext4。
- 挂载选项:用于控制挂载行为的选项,例如noatime(不更新访问时间)和defaults(使用默认选项)等。
- 挂载次序:系统应该以什么顺序挂载文件系统,例如0表示最先挂载。
例如,我们要将设备/dev/sdb1挂载到/mnt/data目录下,并使用ext4文件系统类型,同时在挂载时使用默认选项和noatime选项。我们需要在/etc/fstab文件中添加以下行:
1
|
/dev/sdb1 /mnt/data ext4 defaults,noatime 0 0 |
这样,在每次开机后,系统会自动挂载/dev/sdb1到/mnt/data目录下,并应用我们指定的挂载选项。
五、卸载磁盘
在Linux中,卸载磁盘的命令为umount。卸载磁盘之前,需要先检查磁盘上是否有进程在使用它。如果有,则需要先终止相应的进程,才能安全地卸载磁盘。
例如,若要卸载/mnt/data目录下的文件系统,只需要运行以下命令:
1
|
umount /mnt/data |
六、实际操作
1. 使用lsblk命令查看新加入的磁盘信息
1
2
3
4
5
6
7
|
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 8G 0 part [SWAP] └─sda3 8:3 0 21.5G 0 part / sdb 8:16 0 100G 0 disk |
从上述结果可以看出,系统中新加了一个磁盘设备/dev/sdb。
2. 使用fdisk或者cfdisk分区新磁盘,并将分区标记为Linux文件系统类型(83)
例如使用fdisk命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$ sudo fdisk /dev/sdb Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free ) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help): t Selected partition 1 Partition type ( type L to list all types): 83 Changed type of partition 'Linux' to 'Linux' . Command (m for help): w The partition table has been altered. Calling ioctl() to re- read partition table. Syncing disks. |
3. 格式化新分区,使用mkfs命令
1
2
3
4
5
6
7
8
9
10
11
|
$ sudo mkfs -t ext4 /dev/sdb1 mke2fs 1.45.5 (07-Jan-2020) Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: 882b7297-1258-4e23-9d03-cf20654455b9 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done |
4. 创建挂载目录,使用mkdir命令
1
|
$ sudo mkdir /mnt/data |
5. 挂载分区,使用mount命令
1
|
$ sudo mount /dev/sdb1 /mnt/data |
6. 验证挂载是否成功,使用df -h命令查看所有文件系统的储存器使用情况:
1
2
3
4
5
6
7
8
9
10
11
|
$ sudo df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 793M 1.7M 792M 1% /run /dev/sda3 22G 1.5G 19G 8% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 511M 4.0K 511M 1% /boot/efi tmpfs 793M 0 793M 0% /run/user/1000 /dev/sdb1 99G 72M 94G 1% /mnt/data |
从上述结果可以看出,新分区已经被成功挂载到/mnt/data目录下。
7. 添加自动挂载,编辑/etc/fstab文件,添加以下内容:
1
2
|
$ sudo su $ echo '/dev/sdb1 /mnt/data ext4 defaults 0 2' >> /etc/fstab |
七、总结
挂载磁盘是Linux系统中一个基本的操作,它可以帮助我们扩展存储空间,管理数据文件,备份和存储重要文件等。在挂载磁盘之前,我们需要先对磁盘进行分区,并且在分区上创建文件系统。然后,我们需要使用mount命令将设备挂载到指定的目录下,并在必要时使用/etc/fstab文件配置开机自动挂载。最后,在卸载磁盘之前,需要先检查是否有进程在使用磁盘,并终止相应的进程。