Linux磁盘挂载与格式化

1. 理解磁盘挂载

在安装操作系统时, 如果是一块崭新的硬盘, 系统安装程序会提示我们格式化, 并为系统进行分区; 如果是一个已经格式化过的硬盘, 格式化操作就不再是为了让操作系统可以识别, 更多的是清除数据, 也不必再执行分区操作.

在向系统中新增磁盘时, 同样, 如果这是一块未被格式化的崭新磁盘, 系统是无法识别的, 或者, 如果该磁盘上存在的是一个当前系统不能识别的文件系统, 那系统也是不能使用的. 此时, 就像裸机上安装操作系统一样, 需要将这块磁盘格式化成系统可用的格式. 注意: 不能识别是指无法读写, 看还是看的到的.

于是, 就像Windows上的磁盘管理, Linux上的fdisk, 两者都可以看到安装到主机插槽的所有硬盘, 然后就可以执行格式化了.

当然, 如果这块磁盘本身已经被格式化过并且其文件系统可以识别, 那将其安装到主机插槽就相当于接了一块移动硬盘, 直接可以使用了.

但是linux系统比windows多了一个挂载(mount)操作, 因为Linux下所有的磁盘分区都保存在/etc/fstab文件中, 系统安装时自动生成最初始的配置, 然后每次启动主机都会加载其中的分区, 才能使用. 而新的磁盘没有在这个文件中, 所以需要手动挂载, 让系统能够访问到. Windows与许多桌面版Linux系统都在后台运行一个服务, 当插入U盘或是移动硬盘等设备, 系统会自动执行挂载操作, 但Linux服务器版本一般不会有这个服务, 所以, 手动挂载的方式还是很有必要的.

2.1 Windows

  1. 右键"我的电脑"->“管理”->“磁盘管理”, 然后会看到新分配的磁盘但没有分区.
  2. 右键"新加卷"(未分区的磁盘), 选择"新建", 按照向导, 一步步, 选择硬盘分区模式、格式化硬盘即可使用.

2.2 Linux

随着服务器中服务的增加, 磁盘容量也逐渐告急, 这时我们需要为服务器添加一块新磁盘. Linux主机中插入一块全新的硬盘, 需要将其格式化让系统能够识别, 然后通过挂载, 可以让程序能够访问到. 具体步骤如下.

root身份执行fdisk -l, 可以看到新的磁盘, 但未分区, 默认为sdb.

$ fdisk -l

Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004a605

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39         549     4096000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             549       10444    79481856   83  Linux

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

对新的磁盘执行分区及格式化的操作.

$ fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x4fe05028.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

m键可以查看帮助, 下面直接创建分区, 一个硬盘可以创建最多4个主分区与多个扩展分区. 我们将这个新磁盘当作一个分区.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

再次使用 "fdisk -l"这个命令来查看会发现出现了/dev/sdb1(说明已经完成了分区工作)

$ fdisk -l

Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004a605

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39         549     4096000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             549       10444    79481856   83  Linux

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4fe05028

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+  83  Linux

对新建的分区进行格式化: 格式化成ext4的文件系统即可

$ mkfs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241198 blocks
262059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

下面便是对于分好区的/dev/sdb1 这一个分区进行挂载及访问.

在挂载之前使用df -h查看系统所有可用分区

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        75G  6.4G   65G  10% /
tmpfs           238M  4.0K  238M   1% /dev/shm
/dev/sda1       291M   39M  238M  14% /boot

手动挂载

使用mount /dev/sdb1 /要挂载的目录(自定义), 然后cd /挂载的目录, 即可对其进行存储和访问

自动挂载

修改/etc/fstab即可

使用vim /etc/fstab打开配置的文件, 然后将下面的一行文字添加即可. 这样每次系统启动时就会挂载此磁盘, 直接可以使用.

/dev/sdb1       /media(这个挂载的目录你自己设置即可)      ext4    defaults       0       1

挂载后, 再次用df -h查看

$ mount /dev/sdb1 /media
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        75G  6.4G   65G  10% /
tmpfs           238M  4.0K  238M   1% /dev/shm
/dev/sda1       291M   39M  238M  14% /boot
/dev/sdb1        20G  172M   19G   1% /media
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐