Linuxまたはその他のほとんどのコンピュータシステムでは、USBサムドライブを接続すると、ドライブが存在することが警告されます。ドライブがすでにパーティション分割され、好みに合わせてフォーマットされている場合は、コンピュータがファイルマネージャウィンドウまたはデスクトップのどこかにドライブを一覧表示する必要があります。これは単純な要件であり、コンピューターが一般的に満たす要件です。
ただし、ドライブが希望どおりに設定されていない場合があります。そのような場合は、マシンに接続されているストレージデバイスを見つけて準備する方法を知っておく必要があります。
ブロックデバイスとは何ですか?
ハードドライブは固定サイズのブロックでデータを読み書きするため、一般に「ブロックデバイス」と呼ばれます。これにより、ハードドライブが、プリンター、ゲームパッド、マイク、カメラなど、コンピューターに接続する可能性のある他のものと区別されます。 Linuxシステムに接続されているブロックデバイスを一覧表示する簡単な方法は、 lsblkを使用することです。 (ブロックデバイスの一覧表示)コマンド:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 237.5G 0 part
└─luks-e2bb...e9f8 253:0 0 237.5G 0 crypt
├─fedora-root 253:1 0 50G 0 lvm /
├─fedora-swap 253:2 0 5.8G 0 lvm [SWAP]
└─fedora-home 253:3 0 181.7G 0 lvm /home
sdb 8:16 1 14.6G 0 disk
└─sdb1 8:17 1 14.6G 0 part
デバイス識別子は左側の列に一覧表示され、それぞれが sdで始まります。 、 aで始まる文字で終わる 。各ドライブの各パーティションには、 1で始まる番号が割り当てられます 。たとえば、最初のドライブの2番目のパーティションは sda2です。 。パーティションが何かわからない場合は、それで問題ありません。読み続けてください。
lsblk コマンドは非破壊的であり、プロービングにのみ使用されるため、ドライブ上のデータを台無しにすることを恐れずに実行できます。
dmesgを使用したテスト
疑わしい場合は、 dmesg の末尾を確認して、デバイスラベルの割り当てをテストできます。 コマンド。カーネルイベント(ドライブの接続と切断など)を含む最近のシステムログエントリを表示します。たとえば、サムドライブが本当にであることを確認したい場合 / dev / sdc 、ドライブをコンピューターに接続し、この dmesgを実行します コマンド:
$ sudo dmesg | tail
リストされている最新のドライブは、接続したばかりのドライブです。プラグを抜いてそのコマンドを再度実行すると、デバイスが取り外されていることがわかります。もう一度接続してコマンドを実行すると、デバイスがそこにあります。つまり、ドライブに対するカーネルの認識を監視できます。
ファイルシステムについて
必要なのがデバイスラベルだけであれば、作業は完了です。ただし、使用可能なドライブを作成することが目標である場合は、ドライブにファイルシステムを提供する必要があります。
ファイルシステムが何であるかわからない場合は、ファイルシステムがまったくない場合に何が起こるかを学習することで、概念を理解するのがおそらく簡単です。 重要なデータがまったくない予備のドライブがある場合 、この例に従うことができます。それ以外の場合は、しないでください 設計上、データが完全に消去されるため、この演習を試してください。
ファイルシステムなしでドライブを利用することが可能です。ドライブを確実に正しく識別し、絶対に 重要なものが何もないことを確認し、コンピュータに接続しますが、マウントしないでください。自動マウントする場合は、手動でアンマウントします。
$ su -
# umount /dev/sdx{,1}
悲惨なコピーアンドペーストエラーから保護するために、これらの例では、ありそうもない sdxを使用しています。 ドライブのラベル。
ドライブがマウント解除されたので、これを試してください:
# echo 'hello world' > /dev/sdx
システムにマウントしたり、ファイルシステムを使用したりせずに、ブロックデバイスにデータを書き込んだばかりです。
書き込んだデータを取得するには、ドライブ上の生データを表示できます。
# head -n 1 /dev/sdx
hello world
これはかなりうまく機能しているように見えますが、「helloworld」というフレーズが1つのファイルであると想像してください。この方法を使用して新しい「ファイル」を作成する場合は、次のことを行う必要があります。
- 1行目に既存の「ファイル」があることを確認してください
- 既存の「ファイル」は1行しか使用しないことを知ってください
- 新しいデータを追加する方法を導き出すか、2行目を書き込みながら1行目を書き直します
例:
# echo 'hello world
> this is a second file' >> /dev/sdx
最初のファイルを取得するために、何も変更されません。
# head -n 1 /dev/sdx
hello world
ただし、2番目のファイルを取得するのはより複雑です。
# head -n 2 /dev/sdx | tail -n 1
this is a second file
明らかに、このデータの書き込みと読み取りの方法は実用的ではないため、開発者はファイルの構成要素、1つのファイルの開始位置と終了位置などを追跡するシステムを作成しました。
ほとんどのファイルシステムにはパーティションが必要です。
パーティションの作成
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ハードドライブ上のパーティションは、デバイスが占有できるスペースを各ファイルシステムに通知するデバイス上の一種の境界です。たとえば、4GBのサムドライブがある場合、そのデバイスにドライブ全体(4GB)を占めるパーティション、それぞれ2GB(または必要に応じて1と3)を占める2つのパーティション、いくつかのバリエーションの3つを持つことができます。サイズなど。組み合わせはほぼ無限です。
ドライブが4GBであると仮定すると、GNU分割を使用して端末から1つの大きなパーティションを作成できます。 コマンド:
# parted /dev/sdx --align opt mklabel msdos 0 4G
このコマンドは、 parted で必要とされるように、最初にデバイスパスを指定します 。
-align オプションで別れ パーティションの最適な開始点と停止点を見つけます。
mklabel コマンドはパーティションテーブル(ディスクラベルと呼ばれます)を作成します )デバイス上。この例では、 msdosを使用しています gpt ですが、非常に互換性があり人気のあるラベルであるため、 より一般的になっています。
パーティションの目的の開始点と終了点は最後に定義されます。 -align opt以降 フラグが使用され、分割 ドライブのパフォーマンスを最適化するために必要に応じてサイズを調整しますが、これらの数値はガイドラインとして機能します。
次に、実際のパーティションを作成します。開始と終了の選択が最適でない場合は、別れ 警告し、調整するかどうかを尋ねます。
# parted /dev/sdx -a opt mkpart primary 0 4G
Warning: The resulting partition is not properly aligned for best performance: 1s % 2048s != 0s
Ignore/Cancel? C
# parted /dev/sdx -a opt mkpart primary 2048s 4G
lsblkを実行する場合 もう一度(ドライブを取り外してから再度接続する必要がある場合があります)、ドライブに1つのパーティションがあることがわかります。
ファイルシステムを手動で作成する
利用可能な多くのファイルシステムがあります。無料でオープンソースのものもあれば、そうでないものもあります。一部の企業はオープンソースファイルシステムのサポートを拒否しているため、ユーザーはオープンファイルシステムから読み取ることができませんが、オープンソースユーザーはリバースエンジニアリングせずにクローズドファイルシステムから読み取ることはできません。
この切断にもかかわらず、使用できるファイルシステムはたくさんあり、選択するファイルシステムはドライブの目的によって異なります。ドライブを多くのシステム間で互換性があるようにしたい場合、現時点での唯一の選択肢はexFATファイルシステムです。 MicrosoftはexFATコードをオープンソースカーネルに送信していないため、パッケージマネージャーでexFATサポートをインストールする必要がある場合がありますが、exFATのサポートはWindowsとMacOSの両方に含まれています。
exFATサポートをインストールしたら、作成したパーティションのドライブにexFATファイルシステムを作成できます。
# mkfs.exfat -n myExFatDrive /dev/sdx1
これで、ドライブは、クローズドシステムおよび追加の(そしてMicrosoftによる認可を受けていない)カーネルモジュールを利用するオープンソースシステムによって読み取りおよび書き込みが可能になります。
Linuxにネイティブな一般的なファイルシステムはext4です。これは、ユーザーのアクセス許可を保持しているため、ポータブルドライブにとっては間違いなく厄介なファイルシステムです。ユーザーのアクセス許可は、コンピューターごとに異なることがよくありますが、一般に、信頼性が高く柔軟なファイルシステムです。アクセス許可の管理に慣れている限り、ext4はポータブルドライブ用の優れたジャーナルファイルシステムです。
# mkfs.ext4 -L myExt4Drive /dev/sdx1
ドライブのプラグを抜き、再度差し込みます。ext4ポータブルドライブの場合は、 sudoを使用します ディレクトリを作成し、システム全体で共通のユーザーとグループにそのディレクトリへのアクセス許可を付与します。使用するユーザーとグループがわからない場合は、 sudoを使用して読み取り/書き込み権限を変更できます。 または、ドライブに問題があるシステムをルートします。
デスクトップツールの使用
Linuxシェルがブロックデバイスの間に立っているだけでドライブを処理する方法を知っているのは素晴らしいことですが、あまり洞察に満ちた調査をせずにドライブを使用できるようにしたい場合もあります。 GNOME開発者とKDE開発者の両方の優れたツールを使用すると、ドライブの準備が簡単になります。
GNOMEDisksとKDEPartitionManagerは、この記事でこれまでに説明したすべての機能にオールインワンソリューションを提供するグラフィカルインターフェイスです。これらのアプリケーションのいずれかを起動して、接続されているデバイスのリスト(左側の列)を表示し、パーティションを作成またはサイズ変更して、ファイルシステムを作成します。
GNOMEバージョンは、予想通り、KDEバージョンよりも単純なので、より複雑なバージョンをデモします。それが手元にある場合は、GNOMEディスクを簡単に理解できます。
KDE Partition Managerを起動し、rootパスワードを入力します。
左側の列から、フォーマットするディスクを選択します。ドライブがリストにない場合は、ドライブが接続されていることを確認してから、ツールを選択します>デバイスを更新する (または F5 キーボード上)。
ドライブの既存のパーティションテーブルを破棄する準備ができていない限り、続行しないでください。 ドライブを選択した状態で、[新しいパーティションテーブル]をクリックします 上部のツールバーにあります。パーティションテーブルに付けるラベルを選択するように求められます: gpt またはmsdos 。前者はより柔軟性があり、より大きなドライブを処理できますが、後者は多くのMicrosoftテクノロジと同様に、市場シェアの力による事実上の業界標準です。
新しいパーティションテーブルができたので、右側のパネルでデバイスを右クリックし、[新規]を選択します。 新しいパーティションを作成します。プロンプトに従って、パーティションのタイプとサイズを設定します。このアクションは、パーティショニング手順とファイルシステムの作成を組み合わせたものです。
ドライブに変更を適用するには、[適用]をクリックします ウィンドウの左上隅にあるボタン。
ハードドライブ、イージードライブ
Linuxではハードドライブの扱いは簡単です。ハードドライブの言語を理解していれば、さらに簡単です。 Linuxに切り替えてから、ドライブを自分に合った方法で準備できるようになりました。また、Linuxがストレージを処理するときに透過性を提供するため、失われたデータを回復するのも簡単になりました。
ハードドライブについて実験して詳しく知りたい場合は、最後のいくつかのヒントを次に示します。
- 実験しているドライブ上のデータだけでなく、データをバックアップします。重要なドライブのパーティションを破壊するために必要なのは、1つの間違った動きだけです(これは、失われたパーティションの再作成について学ぶための優れた方法ですが、それほど楽しいことではありません)。
- 対象のドライブが正しいドライブであることを確認してから、再確認します。私はlsblkを頻繁に使用します ドライブを自分で動かしていないことを確認します。 (2つの別々のUSBポートから2つのドライブを取り外してから、無意識のうちに別の順序で再接続して、新しいドライブラベルを取得するのは簡単です。)
- 時間をかけてテストドライブを「破棄」し、データを回復できるかどうかを確認します。パーティションテーブルを再作成するか、ファイルシステムが削除された後にデータを取り戻そうとすることは、良い学習体験です。
さらに楽しくするために、閉じたオペレーティングシステムを使用している場合は、オープンソースのファイルシステムを使用してみてください。この種の互換性に向けて取り組んでいるプロジェクトがいくつかあり、安定した信頼できる方法でそれらを機能させることを試みることは、良い週末のプロジェクトです。