लिनक्स मिंट पर स्वचालित रूप से हार्ड डिस्क पर सभी विभाजन माउंट करना


14

समस्या
मेरे पास लिनक्स मिंट इंस्टॉलेशन है। जितनी बार मैं बूट करता हूं, मुझे अपने कंप्यूटर ( New volume Dऔर Drive C) पर दो विभाजन मैन्युअल रूप से माउंट करने की आवश्यकता होती है । अगर मैं ऐसा नहीं करता हूं, तो ये ड्राइव कहीं दिखाई नहीं देते हैं। मैं जानना चाहता हूं कि क्या इस प्रक्रिया को स्वचालित करने का कोई तरीका है।

लक्ष्य
स्वचालित रूप से हार्ड डिस्क हर बार मैं बूट पर सभी विभाजनों बढ़ते।


लिनक्स XP 14 के साथ लिनक्स मिंट 14 दोहरे बूट चश्मा



जैसा कि पिछले पिछले उत्तर में चर्चा की गई है, / etc / fstab फ़ाइल आपको वह पूरा करने में मदद करेगी। कृपया जिनफस्टैब पर एक नज़र डालें , जैसा कि सुझाव दिया गया है, एक स्वचालित रूप से बनाने के लिए ब्लकिड का उपयोग करता है।
रानी अलबेग वीएन

जवाबों:


15

आप फ़ाइल के माध्यम से ऐसा कर सकते हैं /etc/fstab। इस लिंक पर एक नज़र डालें । इस ट्यूटोरियल में अच्छे विवरण भी हैं।

उदाहरण के चरण

पहले आपको हार्ड ड्राइव के यूयूआईडी का पता लगाने की आवश्यकता है। इसके लिए आप कमांड का उपयोग कर सकते हैं 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कमांड के साथ फाइल को रीप्रोसेस करें ।

विंडोज विभाजन

एक ntfs विभाजन को माउंट करने के लिए आपको अपनी /etc/fstabफ़ाइल में ऐसा कुछ करने की आवश्यकता होगी :

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

दो विभाजन /dev/sda5और फ़ाइल और कमांड में dev/sda6सूचीबद्ध नहीं हैं । क्यों? fstabblkid
इस्सीफ्लेम

ठीक है। मैं समझ गया। यह इसलिए है क्योंकि यह एक विंडोज़ विभाजन है जो कि वहां है / मीडिया
IcyFlame

Windows विभाजन आपको उन्हें आरोहित करने के लिए dev / sda * का उपयोग करने की आवश्यकता होगी, यह भी कि मुझे विश्वास है कि फ़ाइल-सिस्टम-प्रकार के लिए आपको ntfs-3G निर्दिष्ट करना होगा।
slm

14

आप इसे सबसे सरल तरीके से कर सकते हैं। के लिए जाओ:

  • मेनू -> डिस्क (ऐप)
  • उस वॉल्यूम का चयन करें जिसे आप माउंट करना चाहते हैं, और इसके विकल्पों पर क्लिक करें
  • "माउंट विकल्प संपादित करें" चुनें -> और सुनिश्चित करें कि आप ड्राइव में "माउंट एट स्टार्टअप" का चयन करें।

कुछ समय के लिए गुई समझ में आता है या इन चीजों को करना आसान बनाता है।
रामशरण

ओह, होली एस ***, अच्छा !!!
felipsmartins

Wysiwyg समाधान, शुरुआती के लिए बेहतर है।
सैंडबर्ग

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




यह एक पाइथन स्क्रिप्ट है, "/ बिन / lsblk" पर निर्भर करता है, आउटपुट को माउंट और उमाउंट के लिए दो शेल स्क्रिप्ट में सेव करता है।


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
यह मददगार होगा यदि आप ठीक से समझा सकें कि आपकी कमांड क्या करती है।
ढग

एक ही लाइन पर कमांड्स और कंट्रोल स्ट्रक्चर्स का एक बड़ा सीक्वेंस डालना वास्तव में आपके कोड को वन-लाइनर नहीं बनाता है । यह सिर्फ समझने के लिए इसे और अधिक कठिन बना देता है ...
जॉन डब्ल्यूएच स्मिथ

0

वर्तमान fstab का बैकअप:

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

lsblk -f के उत्पादन की प्रक्रिया को sed और awk और 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.