Linux 磁盘挂载

1. 手动挂载

手动挂载的优点是操作简单,但是同时呢也存在显著的缺点,就是每次重启都需要挂载一次,这也是比较麻烦的。

手动挂载步骤:

  1. 创建要挂载的目录
mkdir /prod
chmod 757 -R /prod
  1. 执行挂载命令
mount /nfs/videos /prod

2. 自动挂载

自动挂载后即使系统重启,挂载的盘符也会随着系统开机自动建立,不需要人为再手动创建挂载命令,可以说是一劳永逸。

比如想把已经挂载在 home 目录上的硬盘挂载到 data 目录上, 如下操作

# df -h(查看分区情况及数据盘名称)
# mkdir /data(如果没有data目录就创建,否则此步跳过)
# umount /home(卸载硬盘已挂载的home目录)
# mount /nfs/videos /data (挂载到data目录)
# vi /etc/fstab (编辑fstab文件修改或添加,使重启后可以自动挂载)
  /nfs/videos /data ext4 auto 0 0

简单点来说就是,如果希望将新分区 /dev/sdb1 挂载在 /home/new 目录下,则只需在 fstab 文件中加入一行:

/dev/sdb1     /home/new     ext3    default   0       1

对应的每一列的类型为:

<file system> <mount point> <type> <options> <dump> <pass>

参数说明:

  • 第一列 实际分区名

如果磁盘是SATA接口,且有多个磁盘,则每个磁盘被标记为 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此类推;而每个磁盘的分区被标记为 /dev/hda1、 /dev/hda2等。

如果磁盘是SCSI类型,则多个磁盘会被分别标记为 /dev/sda、/dev/sdb等等。分区同理。

  • 第二列 挂载点

挂载点必须为当前已经存在的目录,为了兼容起见,最好在创建需要挂载的目标目录后,将其权限设置为777,以开放所有权限。

  • 第三列 此分区的文件系统类型

Linux可以使用ext2、ext3等类型,此字段须与分区格式化时使用的类型相同。也可以使用 auto 这一特殊的语法,使系统自动侦测目标分区的分区类型。auto通常用于可移动设备的挂载。

  • 第四列 挂载的选项,用于设置挂载的参数
    常见参数如下:

    auto: 系统自动挂载,fstab默认就是这个选项
    defaults: rw, suid, dev, exec, auto, nouser, and async.
    noauto 开机不自动挂载
    nouser 只有超级用户可以挂载
    ro 按只读权限挂载
    rw 按可读可写权限挂载
    user 任何用户都可以挂载

请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto

  • 第五列 dump备份设置

当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;

  • 第六列 fsck磁盘检查设置

其值是一个顺序。当其值为0时,永远不检查;而 / 根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。

/etc/fstab 后面加下面语句可开机自动挂载

192.168.1.3:/home/nfs       /nfs      nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

3. mount 命令

在 Linux 系统中,mount 命令用于挂在光盘镜像文件、移动硬盘、U 盘等。

格式:

mount [-t vfstype] [-o options] device dir

[-t vfstype] 指定所挂载的文件系统的类型,通常 mount 可自动识别,不用人为指定。常用类型如下:

    光盘或光盘镜像:ISO9660
    DOS FAT16 文件系统:MSDOS
    Windows 9x FAT32 文件系统:VFAT
    Windows NT NTFS 文件系统:NTFS
    Mount Windows 文件网络共享:SMBFS
    UNIX(LINUX)

[-o options] 说明挂载方式,其和上面的命令,两者可互换。常用参数如下:

    loop:用来把一个文件当成硬盘分区挂接上系统
    ro:采用只读方式挂接设备
    rw:采用读写方式挂接设备
    iocharset:指定访问文件系统所用字符集

device 表示要挂载的设备;dir 设备在系统上的挂载点(mount point)。实践操作如下。

在插入 U 盘之前,输入以下命令:

susu@ubuntu:~$ sudo fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c5c38

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    60817407    30407680   83  Linux
/dev/sda2        60819454    62912511     1046529    5  Extended
/dev/sda5        60819456    62912511     1046528   82  Linux swap / Solaris
susu@ubuntu:~$

这地方的命令一定要加 sudo,否则什么也不会显示。

可以看到,Linux 文件系统下,有一块硬盘 sda,硬盘中有 2 个分区 sda1 和 sda2。另外一个 sda5 是逻辑分区。

插入 U 盘后,重新敲一遍命令,得到如下信息:

susu@ubuntu:/$ sudo fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c5c38

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    60817407    30407680   83  Linux
/dev/sda2        60819454    62912511     1046529    5  Extended
/dev/sda5        60819456    62912511     1046528   82  Linux swap / Solaris

Disk /dev/sdb: 4057 MB, 4057989120 bytes
91 heads, 45 sectors/track, 1935 cylinders, total 7925760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63     7925759     3962848+   c  W95 FAT32 (LBA)
susu@ubuntu:/$

会发现,下面多出来很多信息,这个信息都是描述刚刚插入的 U 盘的。系统多了一个硬盘 sdb 和一个磁盘分区 sdb1。我们要挂载的就是磁盘分区 sdb1。

先在 /mnt/ 目录下创建一个挂载点:

susu@ubuntu:/mnt$ sudo mkdir usbhd1
susu@ubuntu:/mnt$ ls
usbhd1
susu@ubuntu:/mnt$

然后根据 mount 命令的语法,将 USB 添加到该挂载点:

susu@ubuntu:/$ mount -o loop dev/sdb1 mnt/usbhd1/
mount: only root can do that
susu@ubuntu:/$ sudo mount -o loop dev/sdb1 mnt/usbhd1/
susu@ubuntu:/$ cd mnt/usbhd1/
susu@ubuntu:/mnt/usbhd1$ ls
????                          EVM?????.txt
????                          ?? Microsoft Word ??.doc
?????                         ???????????????????.pdf
????05.06.07.09????-4.pdf     Reimbursement Form for interview trip.xls
??1_??.png                    System Volume Information
???????????????(2010?).pdf    Vocabulary.doc
2012??????????(?????)-12.pdf  VS2012_ULT_chs.iso
????????.docx                 ????????????????.xls
susu@ubuntu:/mnt/usbhd1$

mount 挂载成功!

上述代码中,刚开始没有加 sudo,提示只有 root 可以。最后 ls ,发现是乱码,是因为 U 盘中都是中文名字,所以显示乱码。可用以下命令解决此问题:

susu@ubuntu:/$ sudo mount -o iocharset=cp936 ./dev/sdb1 ./mnt/usbhd1/

卸载就相对简单了,只需要把挂载点卸掉即可,命令如下:

susu@ubuntu:/$ sudo umount ./mnt/usbhd1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值