Unix システムにおけるドライブの概念とは何ですか?

Unix システムにおけるドライブの概念とは何ですか?

Windows には、すべてのソフトウェアがインストールされている C ドライブと、データを保存するための D、E などのパーティションがあります。何らかの理由で Wi​​ndows を再インストールすると、すべてを C に再度インストールし、データは安全に保管され、問題なくアクセスできます。

現在、Unix タイプの OS では、各ユーザーにホーム ディレクトリが与えられ (Windows にも同様のものがあると思います)、システムのその部分にのみデータを置くことができます (これは私の考えです)。では、ハード ドライブの特定の部分にユーザーが自分のデータを置き、Unix/Linux システムを再インストールするときにそのデータを再利用できる Windows の効果を、どうすれば実現できるのでしょうか。

答え1

UNIX/Linux には物理ドライブを表すさまざまなデバイスがあります。たとえば、Linux では次のようになります。

/dev/sda  -  Would designate SCSI drive with ID of 0 or lately more commonly ID:0 on SATA.
/dev/sdb  -  Would be secondary device, etc

Linux をインストールすると、インストール先を尋ねられます。OS ドライブを指定したり、必要に応じてフォーマットしてマウントする場所を/dev/sda指定したりできます。/dev/sdb/home

OS ドライブにswap、、ファイルシステム用にパーティションを作成します。これにより、基本的に、システムからは物理デバイスとして認識される などのデバイスが作成され/boot、ディレクトリの形式で OS からアクセスできるようになります。//dev/sda1, 2, 3

したがって、このセットアップでは、ドライブ/dev/sdaに相当する Windows のものとなり、選択した文字の指定に関係なく、データ ドライブに相当するものとなります。C:\/dev/sdb

したがって、Linux を再インストールすることを選択した場合、注意する必要があるのは、/dev/sdbそのドライバー上のデータがそのまま残るように、実際に再フォーマットしたり、セットアップしたパーティションを変更したりしないことだけです。

システムにドライブが 1 つしかない場合にも同様の概念を適用できますが、これは Windows でもサポートされているものの、一般的には使用されていない、もう少し複雑な概念になります。

答え2

ここではただ情報を追加しているだけです。他の人がすでにもっと良い回答をしていますが、コメントに追加情報を記入することができませんでした。

あなたはちょっとした(非常によくある)誤解に基づいて行動しており、それがあなたの人生を本来あるべきよりも少し困難にしています。

「ドライブC:」は基本的にCP/Mの用語です(CP/MはDOSを多用した8ビットのオペレーティングシステムでした、ええと、借りたフロッピーの時代では、「ドライブ」と「ファイルシステム」は同等でした。つまり、ドライブには、ファイルシステムが 1 つだけのフロッピー ディスクが入っているか、フォーマットされていない (または空) かのどちらかでした。リンクを作成して、この 2 つを同義語と考えるのは簡単です。

実際、C:は最初のドライブ上の最初の読み取り可能なパーティションです。 ドライブD:、などはE:、同じディスク ドライブまたは他のディスク ドライブ上の他のファイル システムです。 取り外し可能なデバイスの場合は例外で、特別なソフトウェア (など)F:を使用して対処できます。FORMATFDISK

DOS では、raw ドライブはユーザーに直接公開されませんでした。この伝統は今も残っています。物理ドライブは、特別なソフトウェアを使用した場合 (または DVD ドライブなどのリムーバブル デバイスの場合) のみ表示されます。

このドライブ文字 → パーティション パラダイムは、「フォレスト」データ構造として機能します。各文字はグループ内の 1 つの個別のツリーです。次のようになります。

  • ドライブ 128 (最初のハードドライブ — ユーザーに表示されない)
    • パーティション1、C:
    • ファイルとフォルダC:\*
    • パーティション2、D:
    • ファイルとフォルダD:\*
  • ドライブ 129 (2 番目のハード ドライブ — これも非表示)
    • パーティション3、E:
    • ファイルとフォルダE:\*
  • ドライブ 2 (何らかのリムーバブル メディア ドライブ)
    • ドライブ文字F:
    • (フォーマットされたメディアがドライブ内にある場合)F:\*

Unixのファイルシステムは単一のツリーとして動作します。1つのパーティションがツリーのルート(この用語の由来)であり、他のパーティションはマウントされた(接ぎ木されて) その下の「マウント ポイント」に、同じファイル ツリーの一部になります。これは、その外観を簡略化したものです (単一のルートに注意してください)。

  • ルートファイルシステム ( /)
    • 共有コンテンツ ( /usr)
    • 地元のもの(/usr/local
    • ユーザーのホームディレクトリ(/usr
    • 地元のもの(/var
    • さらに地元のもの(/opt
    • マウントされたデバイス (/mntこれは慣例的に取り外し可能なデバイスが配置される場所です)

質問への回答: Unix は常にプログラムとデータを分離します (必ずしもそうする必要はありませんが、経験上、これは非常に良いアイデアであることがわかっており、現在ではディレクトリ構造が標準化されています)。また、(ネットワーク経由でインストールを共有するコンピューターの場合) ネットワークを分離します。共有プログラムとデータ( の下/usr)およびコンピュータ*ローカル*プログラムとデータ(/usr/local/var、の下/optなど)、およびユーザープログラムとデータ(多くの場合 の下にある/home)。

区別を無視するか、これらのディレクトリの一部 (またはすべて) を別のファイルシステム (「ドライブ文字」と考えてください) に配置するかを選択できます。

Unix を再インストールして独自のファイルを保持できるようにするには、/home別のファイルシステム (別のパーティション) としてマウントされていることを確認し、インストール中に新しい OS インストーラーがそのパーティションに触れないように指示します。

また、同じトリックを使用して、ホーム ディレクトリを同じコンピューター上の複数の Linux ディストリビューション (たとえば、テストする場合) や、まったく異なる Unix で利用できるようにすることもできます。私はかつて、OpenBSD、FreeBSD、Linux を同じディスク上で実行し、/home3 つすべてで同じファイル システムを共有していました。

答え3

UNIXでは、すべてのファイルは単一の階層で表現されます。ボリューム(ディスクまたはパーティション)上のファイルをアクセス可能にするには、ボリュームをマウントされたファイル階層内の場所、つまりディレクトリにあります。

オペレーティング システム (または少なくともその主要部分) を含むファイルシステムは、ディレクトリ (/ルート ディレクトリ) にマウントされます。このファイルシステムは、ルート ファイルシステムと呼ばれます。

ユーザー データを別のボリュームに保存するのは、かなり一般的です。このボリュームは にマウントされます/home。この構成が必要な場合は、/homeシステムのインストール時に別のパーティションを要求します (ほとんどのインストーラーではこれが簡単に行えます)。

異なる設計が選択された歴史的な理由は、UNIX が固定ディスクとマルチユーザー システムを念頭に設計されているのに対し、Windows はフロッピー ディスクのみを搭載したコンピューターで実行された DOS (およびそれ以前の CP/M) からこの側面を継承したためです。UNIX システムでのディスクの追加や削除、またはデータの移動は、システム管理者によって実行されました。ディスク構成を変更すると、ファイルへのアクセスに使用されるパスが変わるとしたら、面倒な作業だったでしょう。フロッピーのみのシステムでは、ファイルがどのドライブにあるかを知ることが重要であったため、次のようなパスがa:myfile.txt意味をなしていました。

参照Linux でデバイスをマウントするとはどういう意味ですか?そして一般的な Linux システムにはどのようなマウント ポイントが存在しますか?

答え4

簡単に言うと:

「マウント」の概念:http://fosswire.com/post/2007/04/unix-fundamentals-mount-points/

Linux ディレクトリ (またはフォルダー) 構造:http://www.thegeekstuff.com/2010/09/linux-ファイルシステム構造/

きっと他の誰かがもっと良い詳細な答えを出してくれると思いますが、それが少しでも役に立つかもしれません。

より具体的に質問にお答えすると、Linux システムをインストールするときに、追加のパーティションを作成し、それをフォルダーにマウントするとよいかもしれません/home。 そうすれば、誰かがフォルダー (またはそのサブフォルダーのいずれか) に何かを書き込むと/home、その内容は上記の追加のパーティションに保存されます。

Linux へようこそ!

関連情報