ディレクトリを作成せずにドライブをマウントする方法は?

ディレクトリを作成せずにドライブをマウントする方法は?

フラッシュドライブをUbuntuに接続すると、/media/<username>フラッシュドライブ名をマウントポイント名としてディレクトリが作成されます。ディレクトリをアンマウントすると完全に消えます。

コマンドラインでこれを行うには、mount <x>常に既存のディレクトリであるマウントポイントが必要です。フォルダが作成されない場合はどうすればよいですか?方法があるでしょう。

答え1

Unixシリーズシステムでは、マウントポイントを使用するには常にディレクトリが必要です。自動的にディレクトリを作成するautomountなどのいくつかのソフトウェアがありますが、udev実際にインストールするにはディレクトリが必要です。

答え2

インストールするデバイスとは特定のディレクトリ(マウントポイント)ツリーのルートに添付されます/

したがって、マウントポイントとして使用する既存のディレクトリが常に必要です。そうしないと、インストールされているデバイスにアクセスできなくなります。

マウントポイントとして使用されるディレクトリは空である必要はありません。ただし、インストール後は以前のコンテンツにアクセスできません。したがって、混乱を避けるために、デバイスは通常空のディレクトリにインストールされます。

@Kusalanandaの回答は自動的にマウントポイントを作成し、ユーザーに透明な機能を提供しますが、その後にはディレクトリが常に存在するはずです。

答え3

管理されている自動インストーラを理解するのに混乱があると思います/media

マウント機能には、ファイルシステムをマウントできるディレクトリが必要です。自動マウントは、マウントされているファイルシステム(存在する場合)に関連付けられているラベルを使用してこのディレクトリを作成し、ファイルシステム自体をマウントします。後でファイルシステムをアンマウントしてからディレクトリを削除します。

視覚的な効果は、ディレクトリなしでファイルシステムをマウントすることであり、一般的な場合にこれを達成したいものです。残念ながら、他の人がすでに指摘しているように、これは自動化されたインストーラを使用するトリックを介さなければ不可能です。

mkdir /mnt/dsk
mount /dev/sdb1 /mnt/dsk
# ....
umount /mnt/dsk
rmdir /mnt/dsk

答え4

mymount () {
    local args=( "$@" )
    local dir="${args[-1]}"

    test -d "$dir" || mkdir -p "$dir" || exit 1
    command mount "$@"
}

ほとんどのUnicesとほとんどのファイルシステムでは、このmountユーティリティは必要マウントポイントは既存のディレクトリです。

上記のシェル機能を使用すると、bashディレクトリがまだ存在しない場合はディレクトリが作成されます。この関数を呼び出すと、マウントポイントはコマンドラインの最後の引数と見なされます。これにより、装置を別途設置しなくても、どこからでも装置を設置することができる。手動マウントポイントを作成します。

/media/usernameこれはシステムにマウントポイントを作成するのと似ています。

同様にmyumount、アンマウントされたデバイスを定義し、そのマウントポイントを削除できます。

これは、少なくとも私が知っている実装ではディレクトリを作成mount(または削除できない)することができないという事実を明確に解決しませんが、関数内でディレクトリの生成を隠すことはできます。umountmount


Unix哲学:一つのことをして、それを上手にしましょう。

mount何かをインストールするにはディレクトリが必要です。このディレクトリを作成するのはですmkdir

関連情報