
問題
Linux Mint をインストールしています。起動するたびに、コンピューター上の 2 つのパーティション (New volume D
およびDrive C
) を手動でマウントする必要があります。これを行わないと、これらのドライブはどこにも表示されません。このプロセスを自動化する方法があるかどうか知りたいです。
ゴール
起動するたびにハードディスク上のすべてのパーティションを自動的にマウントします。
仕様
Linux Mint 14 と Windows XP SP3 のデュアルブート
答え1
最も簡単な方法でこれを行うことができます。次の場所に移動します。
- メニュー -> ディスク(アプリ)
- マウントしたいボリュームを選択し、そのオプションをクリックします
- 「マウント オプションの編集」を選択 -> ドライブで「起動時にマウント」が選択されていることを確認します。
答え2
これはファイルを通じて行うことができます/etc/fstab
。これを見てくださいリンク。 これチュートリアル詳細も良いです。
手順例
まず、ハード ドライブの UUID を見つける必要があります。blkid
これには、コマンドを使用できます。例:
% sudo blkid
/dev/sda1: TYPE="ntfs" UUID="A0F0582EF0580CC2"
/dev/sda2: UUID="8c2da865-13f4-47a2-9c92-2f31738469e8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: TYPE="swap" UUID="5641913f-9bcc-4d8a-8bcb-ddfc3159e70f"
/dev/sda5: UUID="FAB008D6B0089AF1" TYPE="ntfs"
/dev/sdb1: UUID="32c61b65-f2f8-4041-a5d5-3d5ef4182723" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb2: UUID="41c22818-fbad-4da6-8196-c816df0b7aa8" SEC_TYPE="ext2" TYPE="ext3"
上記のコマンドの出力はblkid
、 にエントリを追加するときにハードドライブを識別するために使用できます/etc/fstab
。
次に、ファイルを編集する必要があります/etc/fstab
。このファイル内の行は次のように構成されています。
UUID={YOUR-UID} {/path/to/mount/point} {file-system-type} defaults,errors=remount-ro 0 1
次にファイルを編集します。
% sudo vi /etc/fstab
そして、次のようなファイルを追加します。
UUID=41c22818-fbad-4da6-8196-c816df0b7aa8 /disk2p2 ext3 defaults,errors=remount-ro 0 1
ファイルを保存し、コマンドを使用してファイルを再処理しますmount -a
。
Windows パーティション
ntfs パーティションをマウントするには、/etc/fstab
ファイルで次のような操作を行う必要があります。
/dev/sda2 /mnt/excess ntfs-3g permissions,locale=en_US.utf8 0 2
答え3
マウントするパーティションが多数ある場合は、私が行ったようなスクリプトが必要になるかもしれません。
# ! python
# mount all partition by neoedmund
from subprocess import Popen
from subprocess import PIPE
def getCol(col, line):
p1 = line.find(col)
if p1<0 : return ""
p2 = p1 + len(col) + 1
p3 = line.find('"',p2+1)
return line[p2+1:p3]
data_stream = Popen(["/bin/lsblk", "-P", "-o", "FSTYPE,UUID,MOUNTPOINT,KNAME"], stdout=PIPE)
data=[]
for line in data_stream.stdout:
fstype = getCol("FSTYPE", line)
if fstype=="": continue # no fs
mountpoint = getCol("MOUNTPOINT", line)
if mountpoint!="":continue # already mounted
uuid = getCol("UUID", line)
kname = getCol("KNAME", line)
data.append((kname, uuid))
print("### mount script ###")
for (kname,uuid) in data:
print("mkdir /media/%s-%s"%(kname, uuid))
print("mount /dev/%s /media/%s-%s" %(kname, kname, uuid))
print("### umount script ###")
for (kname,uuid) in data:
print("umount /dev/%s" %(kname))
これは Python スクリプトで、「/bin/lsblk」に依存し、マウントとアンマウントの 2 つのシェル スクリプトに出力を保存します。
答え4
現在の fstab のバックアップ:
#cp -a /etc/fstab /etc/fstab.bk
出力を処理するlsblk -f使用してsedそしてawk出力をfstabにリダイレクトします。
#lsblk -f|sed 's/\[SWAP]/swap /g'|awk '/(-)/{printf"UUID=%-36s %-23s %-7s defaults
0 0\n", $3, ($4==""?mnt"NR:$4), $2}'>/etc/fstab
新しいマウントポイントをマウントするには、
#mount -a