Automatyczne montowanie wszystkich partycji na dysku twardym w Linux Mint


14

Problem
Mam instalację Linux Mint. Za każdym razem, gdy uruchamiam komputer, muszę ręcznie zamontować dwie partycje na moim komputerze ( New volume Di Drive C). Jeśli tego nie zrobię, te dyski nigdzie się nie pojawią. Chcę wiedzieć, czy istnieje jakiś sposób na zautomatyzowanie tego procesu.

Cel
Automatyczne instalowanie wszystkich partycji na dysku twardym przy każdym uruchomieniu.

Określa
podwójny rozruch Linux Mint 14 z systemem Windows XP SP3



Jak omówiono w zaakceptowanej poprzedniej odpowiedzi, plik / etc / fstab pomoże ci to osiągnąć. Proszę spojrzeć na genfstab, który, jak sugeruje, używa blkid do automatycznego utworzenia.
Rany Albeg Wein

Odpowiedzi:


15

Możesz to zrobić za pomocą pliku /etc/fstab. Spójrz na ten link . Ten samouczek ma również dobre szczegóły.

Przykładowe kroki

Najpierw musisz znaleźć identyfikator UUID dysków twardych. Możesz użyć blkiddo tego polecenia . Na przykład:

% 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" 

Dane wyjściowe z blkid powyższej komendy można wykorzystać do identyfikacji dysku twardego podczas dodawania wpisów /etc/fstab.

Następnie musisz edytować /etc/fstabplik. Linie w tym pliku są zorganizowane w następujący sposób:

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

Teraz edytuj plik:

% sudo vi /etc/fstab

I dodaj taki plik, na przykład:

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

Zapisz plik, a następnie ponownie przetworz plik za pomocą mount -a polecenia.

Partycje Windows

Aby zamontować partycję NTFS, musisz zrobić coś takiego w swoim /etc/fstabpliku:

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

dwie partycje /dev/sda5i dev/sda6nie są wymienione w fstabpliku ani w blkidpoleceniu. dlaczego?
IcyFlame 14.04.13

w porządku. mam to. to dlatego, że jest to partycja systemu Windows, która znajduje się w / media
IcyFlame

Partycje Windows musisz użyć dev / sda *, aby je zamontować, a także musisz określić ntfs-3g dla typu systemu plików, który uważam.
slm

14

Możesz to zrobić w najprostszy sposób. Iść do:

  • Menu -> Dyski (aplikacja)
  • Wybierz wolumin, który chcesz zamontować, i kliknij jego opcje
  • Wybierz „Edytuj opcje montowania” -> i upewnij się, że wybierasz „Mount at Startup” na dysku.

Czasami gui ma sens lub ułatwia robienie tych rzeczy.
Ramsharan

Och, Holly S ***, miło !!!
felipsmartins,

Rozwiązanie Wysiwyg, lepsze dla początkujących.
Sandburg

1

Jeśli masz wiele partycji do zamontowania, być może potrzebujesz skryptu takiego jak ja.


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




Jest to skrypt Pythona, zależy od „/ bin / lsblk”, zapisz dane wyjściowe w dwóch skryptach powłoki dla mount i umount.


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
Byłoby pomocne, gdybyś mógł dokładnie wyjaśnić, co robi twoje polecenie.
dhag

Umieszczenie ogromnej sekwencji poleceń i struktur kontrolnych w tym samym wierszu tak naprawdę nie czyni z kodu jednowierszowego . To sprawia, że ​​niepotrzebnie trudniej jest zrozumieć ...
John WH Smith,

0

Kopia zapasowa bieżącego fstab:

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

przetwarza dane wyjściowe lsblk -f za pomocą sed i awk i przekierowuje dane wyjściowe do 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

zamontuj nowe punkty montowania, wywołując

#mount -a
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.