在Linux Mint上自动将所有分区安装在硬盘上


14

问题
我安装了Linux Mint。每次我开机,我需要手动安装在我的电脑(在两个分区New volume DDrive C)。如果我不这样做,这些驱动器将不会显示在任何地方。我想知道是否有某种方法可以自动化此过程。

目标
每次引导时自动将所有分区安装在硬盘上。

规格
Linux Mint的14双启动的Windows XP SP3



如先前接受的答案中所述,/ etc / fstab文件将帮助您实现这一目标。请看一看genfstab,它建议使用blkid自动创建一个。
Rany Albeg Wein

Answers:


15

您可以通过文件执行此操作/etc/fstab。看一下这个链接。本教程也有很好的细节。

示例步骤

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

% 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文件。该文件中的行组织如下:

UUID={YOUR-UID}    {/path/to/mount/point}               {file-system-type}    defaults,errors=remount-ro 0       1

现在编辑文件:

% sudo vi /etc/fstab

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

UUID=41c22818-fbad-4da6-8196-c816df0b7aa8  /disk2p2      ext3    defaults,errors=remount-ro 0       1

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

Windows分区

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

/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2

这两个分区/dev/sda5dev/sda6并且未在fstab文件和blkid命令中列出。为什么?
IcyFlame

好的。我知道了。这是因为它是/ media中的Windows分区
IcyFlame

Windows分区需要使用dev / sda *来挂载它们,您还需要为我相信的文件系统类型指定ntfs-3g。
slm

14

您可以通过最简单的方法执行此操作。去:

  • 菜单->磁盘(应用程序)
  • 选择要挂载的卷,然后单击其选项
  • 选择“编辑安装选项”->并确保选择驱动器中的“启动时安装”。

有时候gui有意义,或者使这些事情变得容易。
拉姆沙兰(Ramsharan)2013年

哦,Holly S ***,很好!!!
felipsmartins

所见即所得的解决方案,更适合初学者。
桑德堡

1

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


# ! 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”,将输出保存到两个shell脚本中进行装载和卸载。


0
for i in $(lsblk -r |awk '{ print $1 }'|grep -v md |grep -v loop |grep .*[[:digit:]]|sort|uniq;); 
do
    if [ -z  "$(grep  $i /proc/mounts)" ]
    then  
        mkdir /mnt/$i;
        mount /dev/$i /mnt/$i
    fi
done

2
如果您可以准确解释命令的作用,将很有帮助。
dhag 2015年

在同一行上放置大量命令和控制结构序列并不能真正使您的代码成为单一代码。这只会使理解变得不必要地困难……
约翰·W·史密斯

0

当前fstab的备份:

#cp -a /etc/fstab /etc/fstab.bk

使用sedawk处理lsblk -f的输出,并将输出重定向到fstab:

#lsblk -f|sed 's/\[SWAP]/swap /g'|awk '/(-)/{printf"UUID=%-36s %-23s %-7s defaults 
           0 0\n", $3, ($4==""?mnt"NR:$4), $2}'>/etc/fstab

通过调用来挂载新的挂载点

#mount -a
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.