কমান্ড লাইন থেকে কীভাবে স্বয়ংক্রিয়ভাবে মাউন্ট করবেন?


25

কমান্ড লাইন থেকে আমি কীভাবে একটি স্বতঃপরিবর্তন করতে পারি? "অটোমাউন্ট" দ্বারা আমি সম্পূর্ণ স্বয়ংক্রিয়ভাবে মাউন্টিং বলতে চাই না, তবে উপলব্ধ ডিভাইসগুলির একটি তালিকা পাওয়া এবং তারপরে একটি নির্বাচন করে এবং এটির সমাপ্তি ঘটে /media/{user}/{diskid}। এই কার্যকারিতাটি উদাহরণস্বরূপ নটিলাস বা থুনার সরবরাহ করেছেন, তবে এই জাতীয় আধা স্বয়ংক্রিয় মাউন্ট ট্রিগার করার জন্য আমি কোনও কমান্ড লাইন সরঞ্জাম খুঁজে পেতে পারি না।

pmountআমি খুঁজে পাওয়া সবচেয়ে কাছাকাছি, কিন্তু নীচে সম্পূর্ণ ভিন্ন যান্ত্রিক দ্বারা কাজ করা বলে মনে হচ্ছে এবং ডিভাইসগুলি /media/sdfলাইনগুলির সাথে কিছু বা কিছু দেখায় ।

উত্তর:


29

তুমি ব্যবহার করতে পার:

udisksctl -b মাউন্ট DEVICE_NAME

device_nameস্টোরেজ ডিভাইসের নাম কোথায় এবং এর মতো দেখতে কিছু হওয়া উচিত /dev/sdb1

কমান্ড ব্যবহার lsblkবা sudo fdisk -lকমান্ড দিয়ে আপনি আপনার সিস্টেমে সংযুক্ত সমস্ত স্টোরেজ ডিভাইস খুঁজে পেতে পারেন।


2
চেষ্টা করেছিল যে, এটি যাইহোক /media/{disk}, থুনার বা নটিলাস যা দেবে তার থেকে আলাদা। udisksctlদ্বারা উপলব্ধ কমান্ড udisks2তবে আমি কি চাই না বলে মনে হয়।
গ্রুমবেল

1
udisksctl statusডিভাইসের একটি সঠিক তালিকা দেবে এবং ব্যবহারকারী হিসাবে কাজ করবে। fdisk -lকেবল মূলের প্রয়োজন হয় না, এটি জিপিটি ড্রাইভগুলির সাথেও ব্যর্থ হয়। cat /proc/partitionsউপলব্ধ পার্টিশনগুলির ধারণা পাওয়ার জন্য এটি নিম্ন-স্তরের উপায় way
গ্রুমবেল

udiskctlরুট সুবিধা ছাড়াই লুপ ডিভাইসে ইমেজ ডিস্ক ফাইলগুলি মাউন্ট করার জন্য অত্যন্ত কার্যকর!

দেখে মনে udiskহচ্ছে 14.04 অবধি উপলব্ধ ছিল।
পাবলো এ

13

gio mount

gvfs এখন অবহেলিত (2018) হিসাবে তালিকাভুক্ত হয়েছে এবং আপনাকে 'জিও' ব্যবহার করার পরামর্শ দেওয়া হচ্ছে যা জিনোম ইন আউট এবং গ্লিবের অংশ। উইকিপিডিয়া দেখুন ।

উদাহরণস্বরূপ, দ্বিতীয় ড্রাইভ পার্টিশনটি স্বয়ংক্রিয়ভাবে মাউন্ট করতে; নিম্নলিখিত কমান্ডটি দিয়ে প্রারম্ভকালে চালানোর জন্য এক্সিকিউটেবল অনুমতি সহ একটি বাশ স্ক্রিপ্ট তৈরি করুন:

gio mount -d /dev/sda2

আপনি যদি পার্টিশনের মালিক হন (দেখুন chown) আপনার সুডোর প্রয়োজন হবে না।

উদাহরণস্বরূপ অবস্থিত একটি আইএসও ফাইল মাউন্ট করতে ~/ISOs:

gio mount "archive://file%3A%2F%2F%2Fhome%2Fpablo%2FISOs%2Fubuntu-18.04-desktop-amd64.iso"

আপনি পাইথন 3 এর সাথে ইউআরএল পাথ এনকোড করতে পারেন এবং realpath(এতে সম্মতি জানাতে archive://:

python -c "import urllib.parse, sys; print(urllib.parse.quote(sys.argv[1] if len(sys.argv) > 1 else sys.stdin.read()[0:-1], \"\"))" "file://$(realpath ubuntu-18.04-desktop-amd64.iso)"

এটি মাউন্ট হবে /run/user/$(id -u)/gvfs/

একটি বিকল্প হিসাবে gnome-disk-image-mounterগর্ভবতী হবে /media/$USER/

আনমাউন্ট ব্যবহার করতে gio mount -u /run/user/$(id -u)/gvfs/archive*(বা /media/$USER/, আপনি যেভাবে মাউন্ট করেছিলেন তার উপর নির্ভর করে)।

udisksctl

তালিকাভুক্ত উপলব্ধ ডিভাইস:

udisksctl status

মাউন্টিং এর মাধ্যমে সম্পন্ন হয়:

udisksctl mount -b /dev/sdf

অথবা

udisksctl mount -p block_devices/sdf

আনমাউন্টিং এর মাধ্যমে করা হয়:

udisksctl unmount -b /dev/sdf

অথবা

udisksctl unmount -p block_devices/sdf

object-pathকরে আউট পাওয়া যাবে:

udisksctl dump

প্রকারের অবজেক্টটি org.freedesktop.UDisks2.Blockবৈধ বলে মনে হয় object-patch, /org/freedesktop/UDisks2/udisksctl এগুলি গ্রহণ করার জন্য উপসর্গটি কেটে নেওয়া উচিত।

gvfs-mount

তালিকাভুক্ত উপলব্ধ ডিভাইসগুলি এর মাধ্যমে করা যেতে পারে:

gvfs-mount --list

এগুলি মাউন্ট করার মাধ্যমে এটি করা যেতে পারে:

gvfs-mount -d /dev/sdf

এর মাধ্যমে আনমাউন্টিং সম্ভব:

gvfs-mount --unmount /media/user/01234567890

বাকি একটি সমস্যা হ'ল gvfs-mount --listমাউন্ট কমান্ডে আউটপুট কীভাবে ব্যবহার করতে হবে সে সম্পর্কে আমার কোনও ধারণা নেই , যেহেতু --listব্লক ডিভাইসের নামগুলি দেখাবে না এবং মাউন্টে যে ডিভাইসটি প্রিন্ট করে সেটি ব্যবহার করার চেষ্টা করলে ফলাফলটি পাওয়া যাবে:

Error mounting location: volume doesn't implement mount

উপসংহার

উভয় gvfs-mountএবং udisksctlকাজগুলির জন্য কাজ করার সময়, তাদের ইন্টারফেসটি ব্যবহার্য নয় কারণ তারা উপলব্ধ ডিস্কগুলির মানব পাঠযোগ্য স্থিতি সরবরাহ করে না, কেবল একটি মাত্রিক ভার্জোজ তথ্য ডাম্প।


1
কীভাবে আইসো মাউন্ট করবেন তা সহ আপনি কী আপনার উত্তরটি প্রসারিত করতে পারবেন gio mount? 18.04 এ আর্কাইভ মাউন্টারের gio mount -lরিটার্ন সহ Type: GDaemonMountতবে আমি এটি সিএলআইয়ের মাধ্যমে মাউন্ট করতে পারি না (সম্ভবত কোনও সমস্যা ?)।
পাবলো এ

6

একটি সহজ সমাধান যা প্রয়োজনীয় হিসাবে কাজ করে (মিডিয়াতে / মিডিয়া / {ব্যবহারকারীকে / {ডিস্কিড}) এটি ব্যতীত এটি ডিভাইসগুলি তালিকাভুক্ত করতে পারে না তবে সঠিক, কেস সংবেদনশীল, ভলিউম লেবেলটি আর্গুমেন্ট হিসাবে দেওয়া প্রয়োজন $ 1

মাউন্ট করতে :

DEVICE=$(findfs LABEL=$1) && udisksctl mount -b $DEVICE

আনমাউন্ট করতে :

DEVICE=$(findfs LABEL=$1) && udisksctl unmount -b $DEVICE

খুশী হলাম। অথবা, কেবল:udisksctl mount -b $(findfs LABEL=<label>)
ব্রেন্ট ফাউস্ট

1

সবেমাত্র আমি নিজেই ইস্যুটি চালিয়েছি এবং নিম্নলিখিত সমাধানটি পেয়েছি:

udisksctl mount -b /dev/disk/by-labels/$LABEL

এটি আপনি এবং আপনি ইতিমধ্যে লগ ইন হয়ে থাকলেও এটি ব্যবহারকারীর পাসওয়ার্ড জানতে চাইবে।


0

এই সমস্যাটি সমাধান করার জন্য আমি এই বাশ স্ক্রিপ্টটি লিখেছি, তবে সচেতন থাকুন যে আমি একজন স্ক্রিপ্টিং নবাগত। সমস্ত পরামর্শ স্বাগত! স্ক্রিপ্টের নীচে ব্যবহার এবং বিবরণ অনুসরণ করে।

#!/bin/bash
# umanage.sh
# 2014-05-05

BASEPATH="/media/$(whoami)/"
RESULTS=$(udisksctl dump | grep IdLabel | grep -c -i "$1")

case "$RESULTS" in

0 )     echo "Nothing found."
        ;;

1 )     DEVICELABEL=$(udisksctl dump | grep IdLabel | grep -i "$1" | cut -d ":" -f 2 | sed 's/^[ \t]*//')
        DEVICE=$(udisksctl dump | grep -i "IdLabel: \+$DEVICELABEL" -B 12 | grep " Device:" | cut -d ":" -f 2 | sed 's/^[ \t]*//')
        DEVICEPATH="$BASEPATH""$DEVICELABEL"

        if [[ -z $(mount | grep "$DEVICE") ]]
        then
                echo "Found unmounted $DEVICE partition."
                echo "Do you want to mount it in $DEVICEPATH?"
                select yn in "Mount" "Ignore"
                do
                        case $yn in
                        Mount )         udisksctl mount -b "$DEVICE"
                                        break
                                        ;;
                        Ignore )        exit
                                        ;;
                        esac
                done
        else
                echo "Found $DEVICE partition, currently mounted in $DEVICEPATH."
                echo "Do you want to unmount it?"
                select yn in "Unmount" "Ignore"
                do
                        case $yn in
                        Unmount )       udisksctl unmount -b "$DEVICE"
                                        break
                                        ;;
                        Ignore )        exit
                                        ;;
                        esac
                done
        fi
        ;;

* )     if [ $# -eq 0 ]
        then
                echo "No argument supplied"
        else
                echo "$RESULTS possible results. You may be looking for:"
                echo
                udisksctl dump | grep IdLabel | grep -i "$1" | cut -d ":" -f 2 | sed 's/^[ \t]*//' | sed '/^$/d'
                echo
                echo "Please refine your search."
        fi
        ;;

esac

ব্যবহার:

  • umanage.sh হিসাবে স্ক্রিপ্ট সংরক্ষণ করুন
  • এটি সম্পাদনযোগ্য করুন: chmod + x umanage.sh
  • এটি চালান: ./manage.sh আপনার ডিভাইস লেবেল

স্ক্রিপ্টটি আর্গুমেন্ট হিসাবে আপনি যে পার্টিশনটি মাউন্ট করতে চান তার লেবেল হিসাবে গ্রহণ করে এবং সংশ্লিষ্ট এন্ট্রিগুলির জন্য udisksctl ডাম্পে তাকান।

যদি কোনও পার্টিশন পাওয়া যায় এবং এটি মাউন্ট করা না থাকে তবে ডিভাইসের নাম এবং পথ প্রদর্শিত হয় এবং আপনাকে পার্টিশনটি মাউন্ট করার প্রস্তাব দেওয়া হয়। স্ক্রিপ্টটি আংশিক লেবেলগুলির জন্যও অনুসন্ধান করে এবং এটি উচ্চ এবং নিম্নতর ক্ষেত্রে (আপনার সঠিক লেবেলটি মনে না রাখলে দরকারী) সম্পর্কে চিন্তা করবে না।

./umanage.sh PASSPORT
Found unmounted /dev/sdf1 partition.
Do you want to mount it in /media/pixel/My Passport?
1) Mount
2) Ignore
#? 

যদি কোনও বিভাজন পাওয়া যায় এবং এটি ইতিমধ্যে মাউন্ট করা থাকে তবে আপনাকে এটি আনমাউন্ট করার প্রস্তাব দেওয়া হচ্ছে:

./umanage.sh passp
Found /dev/sdf1 partition, currently mounted in /media/open/My Passport.
Do you want to unmount it?
1) Unmount
2) Ignore
#?

যদি আপনার যুক্তি ফলাফলের চেয়ে বেশি মেলে তবে স্ক্রিপ্টটি আপনাকে মেলে পার্টিশনের লেবেলগুলি দেখায় এবং আপনাকে অনুসন্ধানটি পরিমার্জন করতে বলে:

./umanage.sh SS
2 possible results. You may be looking for:

SSD-9GB
My Passport

Please refine your search.

0

ড্রাইভ মাউন্ট করার স্ক্রিপ্ট - mount-menu.sh

mount-menu.shস্ক্রিপ্ট মাউন্ট জন্য আনমাউন্ট ড্রাইভ / পার্টিশন নির্বাচন করা যাবে। স্ক্রিপ্ট ব্যবহার কল করতে: sudo mount-menu.sh। এই পর্দাটি আপনার অনন্য মেশিনের পরিবেশের জন্য উপযুক্ত বলে মনে হচ্ছে:

মাউন্ট-মেনু 1.png

  • পার্টিশনটি নির্বাচন করার জন্য তীরচিহ্নগুলি ব্যবহার করুন এবং টিপুন Enter

মেনুটি আপনার টার্মিনালে এই তথ্যটি সাফ করে এবং ছেড়ে দেয়:

=====================================================================
Mount Device:  /dev/nvme0n1p10
Mount Name:    /mnt/mount-menu.FPRAW
File System:   ext4
ID:            Ubuntu
RELEASE:       18.04
CODENAME:      bionic
DESCRIPTION:   Ubuntu 18.04.1 LTS
 Size  Used Avail Use%
  27G  7.9G   18G  32%

এখন আপনি ব্যবহার করতে পারেন: cd /mnt/mount-menu.FPRAWআপনার বাহ্যিক ড্রাইভের পার্টিশন অ্যাক্সেস করতে।

তারপরে আপনি সামনে cd home/YOUR_NAMEনা রাখার জন্য মনোযোগী হওয়া ব্যবহার করতে পারেন । আপনি এটি ব্যবহার করা আপনার বুট ড্রাইভ এবং বহিরাগত ড্রাইভ বাইরে নিতে হবে।/homecd /home

mount-menu.sh স্ক্রিপ্ট বিষয়বস্তু

স্ক্রিপ্টটি তৈরি করতে টার্মিনালটি খুলুন এবং টাইপ করুন:

sudo -H gedit /usr/local/bin/mount-menu.sh

তারপরে নীচের কোডটি অনুলিপি করুন এবং এতে আটকান gedit। ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন gedit

এখন ফাইলটি এক্সিকিউটেবল হিসাবে চিহ্নিত করে ব্যবহার করুন:

sudo chmod a+x /usr/local/bin/mount-menu.sh

এখানে অনুলিপি করতে স্ক্রিপ্ট:

#!/bin/bash

# NAME: mount-menu.sh
# PATH: /usr/local/bin
# DESC: Select unmounted partition for mounting
# DATE: May 9, 2018. Modified May 11, 2018.

# $TERM variable may be missing when called via desktop shortcut
CurrentTERM=$(env | grep TERM)
if [[ $CurrentTERM == "" ]] ; then
    notify-send --urgency=critical \ 
                "$0 cannot be run from GUI without TERM environment variable."
    exit 1
fi

# Must run as root
if [[ $(id -u) -ne 0 ]] ; then echo "Usage: sudo $0" ; exit 1 ; fi

#
# Create unqique temporary file names
#

tmpMenu=$(mktemp /tmp/mount-menu.XXXXX)     # Menu list
tmpInfo=$(mktemp /tmp/mount-menu.XXXXX)     # Mount Parition Info
tmpWork=$(mktemp /tmp/mount-menu.XXXXX)     # Work file
MountName=$(mktemp -d /mnt/mount-menu.XXXXX)  # Mount directory name

#
# Function Cleanup () Removes temporary files
#

CleanUp () {
    [[ -f $tmpMenu ]] && rm -f $tmpMenu     # If temporary files created
    [[ -f $tmpInfo ]] && rm -f $tmpInfo     #  at various program stages
    [[ -f $tmpWork ]] && rm -f $tmpWork     #  remove them before exiting.
}


#
# Mainline
#

lsblk -o NAME,FSTYPE,LABEL,SIZE,MOUNTPOINT > $tmpMenu

i=0
SPACES='                                                                     '
DoHeading=true
AllPartsArr=()      # All partitions.

# Build whiptail menu tags ($i) and text ($Line) into array

while read -r Line; do
    if [[ $DoHeading == true ]] ; then
        DoHeading=false                     # First line is the heading.
        MenuText="$Line"                    # Heading for whiptail.
        FSTYPE_col="${Line%%FSTYPE*}"           
        FSTYPE_col="${#FSTYPE_col}"         # FS Type, ie `ext4`, `ntfs`, etc.
        MOUNTPOINT_col="${Line%%MOUNTPOINT*}"
        MOUNTPOINT_col="${#MOUNTPOINT_col}" # Required to ensure not mounted.
        continue
    fi

    Line="$Line$SPACES"                     # Pad extra white space.
    Line=${Line:0:74}                       # Truncate to 74 chars for menu.

    AllPartsArr+=($i "$Line")               # Menu array entry = Tag# + Text.
    (( i++ ))

done < $tmpMenu                             # Read next "lsblk" line.

#
# Display whiptail menu in while loop until no errors, or escape,
# or valid partion selection .
#

DefaultItem=0

while true ; do

    # Call whiptail in loop to paint menu and get user selection
    Choice=$(whiptail \
        --title "Use arrow, page, home & end keys. Tab toggle option" \
        --backtitle "Mount Partition" \
        --ok-button "Select unmounted partition" \
        --cancel-button "Exit" \
        --notags \
        --default-item "$DefaultItem" \
        --menu "$MenuText" 24 80 16 \
        "${AllPartsArr[@]}" \
        2>&1 >/dev/tty)

    clear                                   # Clear screen.
    if [[ $Choice == "" ]]; then            # Escape or dialog "Exit".
        CleanUp
        exit 1;
     fi

    DefaultItem=$Choice                     # whiptail start option.
    ArrNdx=$(( $Choice * 2 + 1))            # Calculate array offset.
    Line="${AllPartsArr[$ArrNdx]}"          # Array entry into $Line.

    # Validation - Don't wipe out Windows or Ubuntu 16.04:
    # - Partition must be ext4 and cannot be mounted.

    if [[ "${Line:MOUNTPOINT_col:4}" != "    " ]] ; then
        echo "Partition is already mounted."
        read -p "Press <Enter> to continue"
        continue
    fi

    # Build "/dev/Xxxxx" FS name from "├─Xxxxx" menu line
    MountDev="${Line%% *}"
    MountDev=/dev/"${MountDev:2:999}"

    # Build File System Type
    MountType="${Line:FSTYPE_col:999}"
    MountType="${MountType%% *}"

    break                                   # Validated: Break menu loop.

done                                        # Loop while errors.

#
# Mount partition
#

echo ""
echo "====================================================================="
mount -t auto $MountDev $MountName


# Display partition information.
echo "Mount Device=$MountDev" > $tmpInfo
echo "Mount Name=$MountName" >> $tmpInfo
echo "File System=$MountType" >> $tmpInfo

# Build Mount information (the partition selected for cloning to)
LineCnt=$(ls $MountName | wc -l)
if (( LineCnt > 2 )) ; then 
    # More than /Lost+Found exist so it's not an empty partition.
    if [[ -f $MountName/etc/lsb-release ]] ; then
        cat $MountName/etc/lsb-release >> $tmpInfo
    else
        echo "No LSB-Release file on Partition." >> $tmpInfo
    fi
else
    echo "Partition appears empty" >> $tmpInfo
    echo "/Lost+Found normal in empty partition" >> $tmpInfo
    echo "First two files/directories below:" >> $tmpInfo
    ls $MountName | head -n2 >> $tmpInfo
fi

sed -i 's/DISTRIB_//g' $tmpInfo      # Remove DISTRIB_ prefix.
sed -i 's/=/:=/g' $tmpInfo           # Change "=" to ":="
sed -i 's/"//g' $tmpInfo             # Remove " around "Ubuntu 16.04...".

# Align columns from "Xxxx:=Yyyy" to "Xxxx:      Yyyy"
cat $tmpInfo | column -t -s '=' > $tmpWork
cat $tmpWork > $tmpInfo

# Mount device free bytes
df -h --output=size,used,avail,pcent "$MountDev" >> $tmpInfo

# Display partition information.
cat $tmpInfo

CleanUp                             # Remove temporary files

exit 0

umount-menu.sh ড্রাইভ / পার্টিশন আনমাউন্ট করতে

একই পদ্ধতি পুনরাবৃত্তি করুন ফাইল সৃষ্টি / স্ক্রিপ্টের জন্য বিট উপলক্ষে প্রক্রিয়া চালানো umount-menu.sh। এই স্ক্রিপ্টটি কেবল চালিত ড্রাইভ / পার্টিশনগুলি আনমাউন্ট করে mount-menu.sh। এটিতে একই নির্বাচন মেনু রয়েছে এবং বার্তাটি সম্পূর্ণ করে:

=====================================================================

/dev/nvme0n1p10 mounted on /mnt/mount-menu.FPRAW unmounted.

স্ক্রিপ্ট ব্যবহার কল করতে: sudo umount-menu.sh

umount-menu.sh বাশ লিপি:

!/bin/bash

# NAME: umount-menu.sh
# PATH: /usr/local/bin
# DESC: Select mounted partition for unmounting
# DATE: May 10, 2018. Modified May 11, 2018.

# $TERM variable may be missing when called via desktop shortcut
CurrentTERM=$(env | grep TERM)
if [[ $CurrentTERM == "" ]] ; then
    notify-send --urgency=critical \ 
                "$0 cannot be run from GUI without TERM environment variable."
    exit 1
fi

# Must run as root
if [[ $(id -u) -ne 0 ]] ; then echo "Usage: sudo $0" ; exit 1 ; fi

#
# Create unqique temporary file names
#

tmpMenu=$(mktemp /mnt/mount-menu.XXXXX)   # Menu list

#
# Function Cleanup () Removes temporary files
#

CleanUp () {
    [[ -f "$tmpMenu" ]] && rm -f "$tmpMenu" #  at various program stages
}


#
# Mainline
#

lsblk -o NAME,FSTYPE,LABEL,SIZE,MOUNTPOINT > "$tmpMenu"

i=0
SPACES='                                                                     '
DoHeading=true
AllPartsArr=()      # All partitions.

# Build whiptail menu tags ($i) and text ($Line) into array

while read -r Line; do
    if [[ $DoHeading == true ]] ; then
        DoHeading=false                     # First line is the heading.
        MenuText="$Line"                    # Heading for whiptail.
        MOUNTPOINT_col="${Line%%MOUNTPOINT*}"
        MOUNTPOINT_col="${#MOUNTPOINT_col}" # Required to ensure mounted.
        continue
    fi

    Line="$Line$SPACES"                     # Pad extra white space.
    Line=${Line:0:74}                       # Truncate to 74 chars for menu.

    AllPartsArr+=($i "$Line")               # Menu array entry = Tag# + Text.
    (( i++ ))

done < "$tmpMenu"                           # Read next "lsblk" line.

#
# Display whiptail menu in while loop until no errors, or escape,
# or valid partion selection .
#

DefaultItem=0

while true ; do

    # Call whiptail in loop to paint menu and get user selection
    Choice=$(whiptail \
        --title "Use arrow, page, home & end keys. Tab toggle option" \
        --backtitle "Mount Partition" \
        --ok-button "Select unmounted partition" \
        --cancel-button "Exit" \
        --notags \
        --default-item "$DefaultItem" \
        --menu "$MenuText" 24 80 16 \
        "${AllPartsArr[@]}" \
        2>&1 >/dev/tty)

    clear                                   # Clear screen.

    if [[ $Choice == "" ]]; then            # Escape or dialog "Exit".
        CleanUp
        exit 1;
     fi

    DefaultItem=$Choice                     # whiptail start option.
    ArrNdx=$(( $Choice * 2 + 1))            # Calculate array offset.
    Line="${AllPartsArr[$ArrNdx]}"          # Array entry into $Line.

    if [[ "${Line:MOUNTPOINT_col:15}" != "/mnt/mount-menu" ]] ; then
        echo "Only Partitions mounted by mount-menu.sh can be unounted."
        read -p "Press <Enter> to continue"
        continue
    fi

    # Build "/dev/Xxxxx" FS name from "├─Xxxxx" menu line
    MountDev="${Line%% *}"
    MountDev=/dev/"${MountDev:2:999}"

    # Build Mount Name
    MountName="${Line:MOUNTPOINT_col:999}"
    MountName="${MountName%% *}"

    break                                   # Validated: Break menu loop.

done                                        # Loop while errors.

#
# Unmount partition
#

echo ""
echo "====================================================================="
umount "$MountName" -l                      # Unmount the clone
rm  -d "$MountName"                         # Remove clone directory

echo $(tput bold)                           # Set to bold text
echo $MountDev mounted on $MountName unmounted.
echo $(tput sgr0)                           # Reset to normal text

CleanUp                                     # Remove temporary files

exit 0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.