首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux上自动在硬盘上挂载所有分区

在Linux上自动在硬盘上挂载所有分区
EN

Unix & Linux用户
提问于 2013-04-14 12:09:53
回答 3查看 78.7K关注 0票数 16

问题

我安装了Linux。每次启动时,我都需要在我的计算机上手动挂载这两个分区(New volume DDrive C)。如果我不这么做,这些硬盘就不会出现在任何地方。我想知道是否有什么方法可以使这个过程自动化。

目标

每次启动时,都会自动挂载硬盘上的所有分区。

规格

Windows SP3双引导Linux 14

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2013-04-14 12:30:36

您可以通过文件/etc/fstab来完成这一任务。看看这个链接。这个教程还有很好的细节。

示例步骤

首先,您需要了解硬盘驱动器的UUID。为此,可以使用命令blkid。例如:

代码语言:javascript
复制
% sudo blkid
/dev/sda1: TYPE="ntfs" UUID="A0F0582EF0580CC2"
/dev/sda2: UUID="8c2da865-13f4-47a2-9c92-2f31738469e8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: TYPE="swap" UUID="5641913f-9bcc-4d8a-8bcb-ddfc3159e70f"
/dev/sda5: UUID="FAB008D6B0089AF1" TYPE="ntfs"
/dev/sdb1: UUID="32c61b65-f2f8-4041-a5d5-3d5ef4182723" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb2: UUID="41c22818-fbad-4da6-8196-c816df0b7aa8" SEC_TYPE="ext2" TYPE="ext3" 

上面blkid命令的输出可以用于在向/etc/fstab添加条目时标识硬盘驱动器。

接下来,您需要编辑/etc/fstab文件。该文件中的行组织如下:

代码语言:javascript
复制
UUID={YOUR-UID}    {/path/to/mount/point}               {file-system-type}    defaults,errors=remount-ro 0       1

现在编辑该文件:

代码语言:javascript
复制
% sudo vi /etc/fstab

并添加这样的文件,例如:

代码语言:javascript
复制
UUID=41c22818-fbad-4da6-8196-c816df0b7aa8  /disk2p2      ext3    defaults,errors=remount-ro 0       1

保存该文件,然后使用mount -a命令重新处理该文件。

Windows分区

要挂载ntfs分区,您需要在/etc/fstab文件中执行如下操作:

代码语言:javascript
复制
/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2
票数 15
EN

Unix & Linux用户

发布于 2013-07-20 06:20:21

你可以用最简单的方法来做这件事。请转至:

  • 菜单->磁盘(app)
  • 选择要挂载的卷,然后单击其选项。
  • 选择“编辑安装选项”->,并确保在驱动器中选择“启动时安装”。
票数 17
EN

Unix & Linux用户

发布于 2014-08-07 11:53:35

如果您有很多分区要挂载,也许您需要像我这样的脚本。

代码语言:javascript
复制
# ! python
# mount all partition by neoedmund
from subprocess import Popen
from subprocess import PIPE

def getCol(col, line):
    p1 = line.find(col)
    if p1<0 : return ""
    p2 = p1 + len(col) + 1
    p3 = line.find('"',p2+1)
    return line[p2+1:p3]

data_stream = Popen(["/bin/lsblk", "-P", "-o", "FSTYPE,UUID,MOUNTPOINT,KNAME"], stdout=PIPE)
data=[]
for line in data_stream.stdout:
    fstype = getCol("FSTYPE", line)
    if fstype=="": continue # no fs
    mountpoint = getCol("MOUNTPOINT", line)
    if mountpoint!="":continue  # already mounted   
    uuid = getCol("UUID", line)
    kname = getCol("KNAME", line)
    data.append((kname, uuid))

print("### mount script ###")
for (kname,uuid) in data:
    print("mkdir /media/%s-%s"%(kname, uuid))
    print("mount /dev/%s /media/%s-%s" %(kname, kname, uuid))

print("### umount script ###")
for (kname,uuid) in data:
    print("umount /dev/%s" %(kname))

它是一个python脚本,依赖于"/bin/lsblk“,它将输出保存到两个用于挂载和umount的shell脚本中。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/72393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档