今日は、WindowsからLinuxへのチュートリアルの最近のテンプレートから離れたいと思います。このテンプレートは、次のようなフレームワークを使用して、通常はWindows専用に設計または意図された、さまざまなプログラムをインストール、構成、および使用する方法を示すことに焦点を当てています。ワイン。今日お話しするのは、ディスクとドライブの管理に関するジューシーなトピックです。
アプリケーション以外にも、考慮すべきデータがあります。そして、データはすべてにとって重要です。 WindowsとLinuxの基本的な違いを考えると、事態はさらに複雑になります。前者はNTFSを使用し、データはドライブ(C:、D:など)に編成されます。 Linuxは、すべてを1つのファイルシステムツリー(root、/)に格納し、NTFSを処理できますが、さまざまなファイルシステム形式(ext4など)を使用します。それでは、自分のものを移動しようとしている場合はどうなりますか?このチュートリアルは、順序、単純さ、明快さを求める人のための優れた提案です。
予備資料
このガイドを単独で使用することはできません。私たちが従わなければならない物理学のいくつかの厳しい法則があります。まず、ディスクやドライブの管理、ファイルシステムなどについて何も知らない場合、この記事は実際には役に立ちません。これらの原則の基本的な基盤が必要です。現実的にしましょう。この記事は、Linuxの実務経験がほとんどない(まだ)オタク向けです。
とは言うものの、これ以上掘り下げる前に熟読すべき私の記事がいくつかあります:
GPartedパーティショニングソフトウェアチュートリアル
Windows初心者向けの究極のLinuxガイド
同じですが異なる
さて、用語と技術的な詳細がわかったので、シナリオについて説明しましょう。 2つの物理ディスクと合計5つのディスクパーティションを備えたWindowsマシンがあるとします。レイアウトが次のようになっているとしましょう:
- C:\ドライブ-Windowsおよびコアオペレーティングシステムファイル、プログラムファイル、ユーザーデータ。
- D:\ドライブ-ゲームのインストール(Steamなどを含む)。
- E:\ドライブ-ユーザーのデータ(ファイル、映画、音楽、ドキュメントなど)は、マイドキュメントなどに保存されません。
- F:\ドライブ(2番目のディスク上)-バックアップに使用されます。ここでは、ユーザーデータは週に1回コピーされます。
- H:\ドライブ(2番目のディスク上)-重要でないもの(ダウンロード、生のビデオなど)に使用されます。
ここで、次のディスク配置のコンピューターの所有者がLinuxへの移行に関心があると仮定します。したがって、彼らが行うことは次のとおりです。
ディスクを再パーティション化します。具体的には、H:\ドライブを縮小してから、解放された(現在は空の)スペースにいくつかの新しいパーティションを作成します。次に、ここにLinuxディストリビューションをインストールします。現在、デュアルブートシステムを実行しており、コンピューターの電源を入れるか再起動すると、Linux環境とWindows環境のどちらに進むかを選択できるメニューが表示されます。
ご覧のとおり、上記のリンクのようなさまざまなデュアルブートの記事、およびWindows 7とUbuntu、Windows 7とCentOSのガイドで、このシナリオとかなり類似したシナリオの概要を説明しました。これにより、同様の冒険の良い基準点が得られるだけでなく、Linuxでのディスク管理の初期の違いがどのようになるかを理解できるようになります。
これで、ユーザーは2つのオペレーティングシステムを備えたシステムを使用できます。ただし、問題があります。データの大部分は引き続きWindowsに存在するか、NTFSファイルシステムでフォーマットされたWindowsドライブに保存/保持されます。ここにいくつかの質問があります:
- ユーザーはWindowsデータにアクセスできますか?
- ユーザーはWindowsデータを変更できますか?
- ユーザーはデータをWindowsドライブから他のパーティションのネイティブLinuxファイルシステムに移行できますか?
- ユーザーは(必要に応じて)NTFSファイルシステムをネイティブLinuxファイルシステムに変換できますか?
では、これらに答えましょう!
- Linuxは、大きな問題なしにNTFSファイルシステムを読み取ることができます。ほとんどのディストリビューションはこれをネイティブにサポートしています。
- 同様に、LinuxはNTFSファイルシステムに書き込むことができます。ただし、すべてのディストリビューションにこの機能がそのまま備わっているわけではありません。この問題の解決策は、必要な機能を提供するNTFS-3gユーティリティをインストールすることです。たとえば、CentOS、AlmaLinux、RockyLinuxなどのRedHatディストリビューションでは:
sudo dnf install ntfs-3g ntfsprogs
- ユーザーはデータを移行できますが、上記のシナリオでは、新しく作成されたLinuxパーティションに、データ、バックアップ、その他のビットを含むすべてのWindowsのものを収容するのに十分なスペースがない可能性があります。情報の。
- ファイルシステムの変換は、データの損失につながる可能性のある危険な操作です。完全で検証可能なデータのバックアップが整っていない場合は、絶対に行わないでください。ただし、バックアップが用意されている場合は、ネイティブファイルシステムを使用してパーティションをフォーマットし、データをコピーすることをお勧めします。
ディスク管理の不透明度
ディスクスペースの不足や簡単なデータ移行パスの解決策は、Linuxシステム内にWindowsデータを表示することですが、実用的なデータバックアップを可能にするだけでなく、識別しやすい方法で表示します。私が何を意味するかを説明するために、次のことを考慮してください:
Linuxでは、すべてのパスが1つのルート(/)に解決されます。たとえば、/ home / igorは、「igor」という名前のユーザーのホームディレクトリへのマウントポイントになります。ただし、そのディレクトリの物理マッピングはどこでもかまいません。別のパーティション、別のディスク、さらには別のシステム(ネットワーク上)の場合もあります。例:
- ルートファイルシステム(/)は、/ dev / sda1(最初のディスクの最初のパーティション)のマウントポイントです。
- home / igorはディレクトリであり、個別のマウントポイントではありません。データは/dev/ sda1(同じディスク)にあります。
- または、パス/ home/igorを/dev/sda2または/dev/ sdc7、さらにはNFS、CIFS、またはSamba共有に解決することもできます。
つまり、ユーザーがWindowsドライブをマウントすると、Linuxでは単一のルートファイルシステムの一部として表示され、他の場所やパスから必ずしも識別できるとは限りません。繰り返しますが、例:
ほとんどのLinuxシステムは、/ run /mediaまたは/mediaの下に、リムーバブル、外部、または非Linuxデバイスをマウントします。したがって、これらの場所の下に2つのディレクトリが表示されていても、名前が付けられていても、必ずしもそれらを区別できるとは限りません。 1つは内部のWindowsNTFSフォーマットのパーティションであり、もう1つはFAT32フォーマットのUSBドライブである可能性があります。
解決策、次に
この問題を回避するには、次の方法を使用します。
- ルートの下にドライブ(/ドライブ)という新しいトップレベルディレクトリを作成します。
- 内部では、識別子として文字を使用して、Windowsドライブのマウントポイントとして機能するディレクトリを作成します。たとえば、/ drive / CはC:\ドライブのマウントポイントとして使用され、/ drive / EはE:\ドライブのマウントポイントとして使用されます。
- / etc / fstabの下にWindowsドライブの永続的なマウントルールを作成します(これについては後ほど詳しく説明します)。これは、システムの起動時に、Windowsドライブが書き込み可能なデバイスとしてマウントされ、最上位の/drivesの場所の下にディレクトリとして表示されることを意味します。
この方法は何を保証しますか?
このアプローチには多くの有用な利点があります:
- Linuxのみまたは純粋なLinuxパスとWindowsパスを明確かつ目に見える形で分離できます。
- 一般的なディレクトリの下にあるLinux以外のすべてのデバイス/パーティションを混在させるわけではありません。
- バックアップスクリプトを実行すると、すべてがコピーまたはバックアップされるのではなく、必要なものだけが確実にコピーされます。 Linuxシステムの完全バックアップを実行していて、他のファイルシステムとドライブがマウントされている場合、必ずしもそれらをバックアップに含める必要はなく、すべての「不明な」パスを考慮する必要はありません。 。
これがあなたのやり方です
前の例に続いて、最初のステップは、Linuxが内蔵ハードディスクをどのように「認識」し、Windowsドライブをどのように識別するかを理解することです。ここでも、少し専門知識が必要です。 fdiskなどのコマンドラインツールを使用して、デバイスとそのパーティションのリストを出力できます。次のことを想定しましょう:
- / dev / sda1-C:\ドライブ
- / dev / sda2-D:\ドライブ
- / dev / sda3-E:\ドライブ
- / dev / sdb1-F:\ドライブ
- / dev / sdb2-H:\ドライブ
- / dev / sdb3-Linuxルート(/)
- / dev/sdb4-Linuxスワップ
- / dev / sdb5-Linuxホーム(/ home)
/ drivesトップレベルパスとその下のディレクトリを作成します(Windowsドライブの場合のみ):
sudo mkdir / drives
sudo mkdir / drives / C
sudo mkdir / drives / D
...
ここで、rootまたはsudoとして、/ etc / fstabファイルのバックアップを作成し、それをテキストエディター(nanoなど)で編集します。
sudo cp / etc / fstab / home / "your user" / fstab-backup
sudo nano / etc / fstab
テキストエディタで、Windowsドライブにマウントポイントを追加します。
/ dev / sda1 / drives / C ntfs-3g defaults、locale =utf8 0 0
/ dev / sda2 / drives / D ntfs-3g defaults、locale =utf8 0 0
...
ここには何がありますか?
- マウントする実際のデバイス/パーティションを指定します。
- マウントポイントを指定します。
- ファイルシステムを指定します。この場合、ntfs-3gファイルシステムドライバーを使用します(読み取り/書き込みアクセスを許可します)。
- マウントオプションを指定します。デフォルトとUTF8エンコーディングを使用してシンプルに保ちます。
- 最後の2つのフィールド(dumpとfsck)を0に設定したため、これらは従来のLinux操作から除外されます。
これが私のシステムの1つからの実際の例です:
#<ファイルシステム><マウントポイント><タイプ><オプション><ダンプ><パス>
#/インストール中に/ dev /nvme0n1p5にあった
#/ boot/efiは/dev/nvme0n1p1にありましたインストール中
UUID =7f4087e7-e572-44fd-a4a1-7489099937a0 / ext4 errors =remount-ro 0 1
UUID =C05A-951D / boot / efi vfat umask =0077 0 1
/ swapfile none swap sw 0 0
/ dev / nvme0n1p3 / drives / C ntfs-3g defaults、locale =utf8 0 0
コメントされていない最初の3つのエントリは、ルート(/)、UEFIシステムで必要な/ boot / efi(VFATファイルシステムも表示)、およびスワップパーティションではなくスワップファイルを含むLinuxファイルシステムのマウントエントリです。
4番目のエントリは、Windowsドライブの追加です。デバイス識別子は/dev/ sdaXYではなく、代わりに/ dev/nvmeXnYp3であることに注意してください。この理由は、システムにNVMeハードディスクがあり、LinuxシステムがIDE / SATA/SCSIデバイスとは異なる方法でハードディスクを識別するためです。ただし、すべての実用的な目的で、表記は同じです。
私たちが持っているのは、最初の(0)NVMeバス、最初の(1)デバイス、3番目の(3)パーティションです。繰り返しになりますが、デバイスとパーティションの表記が異なるため、先ほどのハードディスク管理に関するガイドとGRUBチュートリアルを参照してください。したがって、上記の例では、Windowsパーティション、事実上3番目のパーティションをNVMeディスクの/ drives/Cの下にマウントします。
効果を確認するために再起動する必要はありません。すべてを再マウントするだけです。
sudoマウント-a
これで、Windowsドライブが対応するパスにマウントされ、データを確認できます。次のステップは、マウントされたデータを使いやすく、アクセスしやすくすることです。
ファイルマネージャーとWindowsドライブ
(コマンドラインではなく)GUIからのデータを使用する場合は、次のトリックを実行できます。
- ホームディレクトリにマウントされたドライブへのシンボリックリンクを作成します。
- より具体的には、各ドライブ(文字)を、Windowsドライブ名などの意味のある識別子を持つフォルダーにシンボリックリンクします。
ln -s / drives / C〜/ Windows
上記のコマンドは、ホームディレクトリにシンボリックリンクを作成します。 Windowsは、C:\ドライブへのマウントポイントである/ drives/Cにマップされます。したがって、LinuxファイルマネージャでWindowsフォルダをクリックすると、Windowsドライブの内容が表示されます。
これで、さらに一歩進んで、これらのドライブへのショートカットを作成できます。たとえば、Plasmaデスクトップ環境では、サイドバーにショートカットを追加できるため、Windowsは/ drives / Cにマップされ、ゲームは/ drives / Dにマップされ、データは/ drives/Eにマップされます。次のステップは、バックアップタスクをフローに追加する可能性があることですが、それは別のチュートリアルのトピックです。
結論
私のチュートリアルは、データ管理の聖杯ではありません。それからは程遠い。しかし、それは人々がWindowsからLinuxに移行する際に直面する可能性のある一般的な問題にエレガントな提案を提供します。これは、Windowsデータを視覚的で直感的な方法で表示する方法を提供します。破壊的な操作は含まれていません。それは便利なバックアップとデータ分離を可能にします。また、Windowsワークフローに慣れているユーザーは、使い慣れた手がかりや確立されたワークフローに妥協することなく、新しい環境にゆっくりと適応できます。
Windows専用ドライブが独自のパスにマウントされ、GUIツールを介した便利なアクセスを提供するシンボリックリンク、および論理マッピングにより、移行のための優れた強固な基盤が得られるはずです。次のステップは、重要なデータがバックアップされていることを確認することです。バックアップのないデータは、ただ悲劇が起こるのを待っているからです。それと、フォローアップ記事で他の多くの実用的な日常のヒントをカバーします。今のところ、上記で概説したデータスキーマについて少し考えてみてください。また、追加のプログラムセットアップガイドにご注目ください。またね。