web-dev-qa-db-fra.com

Monter toutes les partitions sur le disque dur automatiquement sur la menthe Linux

numéro
[.____] J'ai une installation de menthe Linux. Chaque fois que je démarre, j'ai besoin de monter manuellement les deux partitions sur mon ordinateur (New volume D et Drive C). Si je ne fais pas cela, ces disques ne montrent que nulle part. Je veux savoir s'il y a un moyen d'automatiser ce processus.

objectif
[.____] Montage automatiquement toutes les partitions sur le disque dur à chaque démarrage.

spécifications
Mint Linux 14 Dual Boot avec Windows XP SP3

14
IcyFlame

Si vous avez beaucoup de partitions pour être montées, vous avez peut-être besoin d'un script comme je l'ai fait.


# ! 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))



C'est un python script dépend de "/ bin/lsblk", de sauvegarder la sortie sur deux scripts shell pour monter et mentionner.

1
neoedmund

Sauvegarde du fstab actuel:

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

processez la sortie de lsblk -f à l'aide de SED et awk et redirection de sortie sur 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

montez les nouveaux points de montage en invoquant

#mount -a
0
AVA
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
0
anonymous coward