Linuxで読み取り専用パーミッションのファイルを削除したい場合、いくつかの選択肢がある。そのファイルが自分のものであれば、ファイルのパーミッションを変更するか、sudoコマンドを使ってroot権限でファイルを削除することができる。しかし、書き込みパーミッションのファイルを削除しようとしても削除できない(または "Read Only File System "エラーが表示される)場合は、適切なパーミッションでドライブを再マウントする必要があるかもしれません。UbuntuやLinux Mintを含むLinuxディストリビューションで読み取り専用ファイルを削除する方法を紹介します。
ファイルパーミッションを変更する
-
ターミナルウィンドウを開く。あなたが所有するファイルが読み取り専用である場合、そのファイルに書き込み権限を与えない限り、そのファイルを削除することはできません。ウィンドウマネージャを使っている場合は、Ctrl + Alt + Tでターミナルウィンドウを開いてください。
- この方法は、自分の所有物であるが(例えば、あなたが所有者であるか、そのファイルを読み取るアクセス権を持っているグループに属している)、削除する権限を持っていないファイルを削除しようとしている場合に使用します。
- リモートでサインインしていて、すでにコマンドプロンプトにいる場合は、次のステップに進んでください。
-
cdを使って、削除したいファイルのディレクトリに入る。たとえば、削除したいファイルがホーム・ディレクトリのdocumentsというフォルダの中にある場合、cd documentsまたはcd /home/ユーザー名/documentsを使います。
-
ディレクトリ内のファイルのパーミッションを表示するには、ls -alを使う。ls -lを使うと、ディレクトリ内のファイルの一覧が、各ファイルの所有者とパーミッションとともに表示される。ls -l に a を追加すると、ディレクトリ内の隠しファイルや隠しフォルダも表示される。
-
削除したいファイルのパーミッションを確認する。ファイルのパーミッションは、ファイル名の前に次のように表示される:r--r--r--。所有者の名前はその後に表示され、その後にグループ名が続きます。
- rは読み取りパーミッション、wは書き込みパーミッション、xは実行パーミッションである。
- パーミッションの最初の3文字(この例ではr--)は、ファイルの所有者のパーミッションである。つまり、この例では、ファイルの所有者は読み取り権限しか持っておらず、ファイルへの書き込み、実行、削除はできない。
- 2番目の3文字はグループ・パーミッションです。もしあなたがグループのメンバーで、そのグループにファイルへの書き込みパーミッションがあれば、所有者でなくてもファイルを削除することができます。
- 3番目の3文字はワールドパーミッションで、これは他のすべての人のパーミッションです。
-
chmod -v u+rw filenameを使うと、自分に読み込みと書き込みのパーミッションが与えられる。すでに読み取り権限を持っている場合は、rを省略できます。書き込み権限があれば、ファイルを削除できるようになる。
- ファイルの所有者ではないが、システムのrootアクセス権を持っている場合は、sudo chmod -v u+rw filenameを使って自分に正しいパーミッションを与えることができる。
- ファイルの新しいパーミッションを見るには、もう一度ls -alを実行する。
-
rm filenameを使ってファイルを削除する。これでファイルに書き込みパーミッションが与えられたので、削除は簡単だ。
- ファイルを書き込み可能にしても削除できない場合は、パーティションが読み取り専用にマウントされている可能性があります。トラブルシューティングを参照してください。
sudoを使う
-
ターミナルウィンドウを開きます。sudoコマンドを使って、ユーザーアカウントで削除できない読み取り専用ファイルを削除できます。ウィンドウ・マネージャーを使っている場合は、Ctrl + Alt + Tキーを押してターミナル・ウィンドウを開いてください。
- この方法は、削除したいファイルの所有者でなく、パーミッションを変更せずに削除したい場合に使用します。
- リモートでサインインしていて、すでにコマンドプロンプトが開いている場合は、次のステップに進んでください。
-
cdを使って、削除したいファイルのディレクトリに入る。たとえば、削除したいファイルがホーム・ディレクトリのdocumentsというフォルダの中にある場合、cd documentsまたはcd /home/ユーザー名/documentsを使う。
-
ディレクトリの中身を見るには、ls -alを使う。このコマンドは、現在のディレクトリにあるすべてのファイルと、各ファイルの所有者とパーミッションを表示します。
-
sudo rm filenameを使ってファイルを削除する。rootレベルのパーミッションを取得するために、パスワードを入力するプロンプトが表示されます。パスワードが承認されると、読み取り専用のファイルが削除される。
- sudoでファイルを削除できない場合、パーティションが読み取り専用にマウントされている可能性があります。トラブルシューティングを参照してください。
読み取り専用ファイルシステムエラーの修正
-
ターミナルウィンドウを開きます。ファイルを削除しようとして、rm: cannot remove '(filename)' というエラーが表示された場合:読み取り専用ファイルシステムにはいくつかの原因が考えられます。ウィンドウ・マネージャーを使っている場合は、まず Ctrl + Alt + T を押してターミナル・ウィンドウを開きます。
- リモートでサインインしている場合は、次のステップに進んでください。
-
df -hを実行して、マウントされているすべてのデバイスを表示する。トラブルの原因となっているドライブの正確なマウントポイントを知っておく必要があります。これでマウントされているドライブがすべて表示されます。
-
mount コマンドを実行します。mount pointを実際のマウントポイント、例えば/media/usbdiskに置き換えてください。 古いバックアップなど、リムーバブルディスクやネットワークドライブ上のファイルを削除しようとしている場合、ファイルが保存されているディスクは読み取り専用としてマウントされている可能性があります。
- 結果にroが表示される場合は、ファイルシステムが読み取り専用になっています。ドライブを再マウントすると、エラーが修正されるはずである。そのためには、mount -o remount,rw mount pointを使用する。その後、ファイルを削除することができる。
- パーミッションがrwの場合、ディスクは読み書きパーミッションでマウントされているので、問題なくファイルを削除できるはずだ。これは通常、ドライブのファイルシステムに問題があることを意味する。この方法を続けてください。
- remount-roと表示された場合は、ファイル・システムに問題があり、さらなる被害を抑えるためにドライブが読み取り専用で再マウントされたことを意味します。これは、ドライブのファイル・システムに問題があることも意味します。この方法を続けてください。
-
パーミッションが正しい場合は、ドライブをアンマウントします。これを行うには、sudo umount device を実行する。deviceはデバイス名に置き換えてください(例:/dev/sdd1)。
- ルートファイルシステムをアンマウントすることはできないので、リカバリーモードで起動しない限り、ルートパーティションのファイルシステムをチェックすることはできません。エラーがルートファイルシステムにある場合は、まずリカバリーモードで起動してください。
-
sudo fsck -n deviceを実行してドライブをチェックする。これは変更を加えずにドライブの完全性をチェックします。ドライブに問題がなければ、結果に「clean」と表示されます。エラーがあれば、それが表示されます。
- エラーがある場合は、ファイルシステムを修復できない場合に備えて、続行する前にドライブをバックアップしてください。
-
sudo fsck deviceを実行してエラーを修復します。エラーがある場合は、エラーを修正するように指示されます。
- エラーを修正できた場合でも、ドライブが瀕死の状態になった場合に備えてバックアップを取っておく。
-
修復が完了したら、ドライブを再マウントする。エラーを修復できた場合は、ドライブを再マウントすることで、ファイルを削除できるようになります。mount -o remount,rw mount pointを使用して、ドライブが読み取りと書き込みのパーミッションで再マウントされるようにします。これで、ドライブ上のファイルを変更および削除できるようになります。
コメント
最新を表示する
NG表示方式
NGID一覧