[KDE] FAT32ファイルシステムをログイン時に自動マウントする

2008/09/20PC::Linux/BSD

X41のWindows XP領域とKubuntu領域両方で利用できるストレージとして、FAT32ファイルシステムのパーティションを用意しています。が、Kubuntuから自動マウントさせても所有者がrootとなってしまうため、root以外のユーザが自由にファイル等を書き込むことに制限が生じてしまっています。それを解決したときのメモ。

環境

  • Kubuntu 8.04.1 日本語ローカライズド
  • FAT32共有領域: /dev/sda8
  • マウントポイント: /mnt/fat32

自動マウントできるようになるまで

UUIDを調べる

/etc/fstabで上記のFAT32共有領域を指定するためにUUIDを調べます。
以下は/dev/sda8のUUIDを調べる場合は以下の通り。

$ ls -la /dev/disk/by-uuid | grep sda8

その他、tune2fs, blkid, vol_idなどの方法で調べることが出来るようです。→ubulog: UUIDを調べる方法

/etc/fstabの編集

一般ユーザでも書込権限付きでマウントできるように/dev/sda8を編集する

# /dev/sda8
<file system>        <mount point> <type> <options>                                           <dump> <pass>
UUID=調べたsda8のUUID  /mnt/fat32  vfat user,rw,noauto,exec,codepage=932,iocharset=utf8        0       0

これで、任意のユーザで書込権限付きでマウントするための準備が整いました。

自動マウントする

KDE環境ではログイン時に~/.kde/Autostart/以下に配置したスクリプト等を自動実行してくれるので、ここに以下の様なシェルスクリプトを作成します。

#!/bin/sh
mount /mnt/fat32

シェルスクリプトの名前は自由なので、自分がわかりやすい名前をつけるといいでしょう。*1シェルスクリプトを作成したら実行権限を付けることを忘れないで下さい。

$ chmod 755 ./automount.sh

*1 : ちなみに、かえでは"automount.sh"としています

参考

2008/09/14(日)今日の駄目すぎる瞬間

Kubuntuの導入が完了し、一通り設定を行いようやく外に出せる状態になったと思いきや…

Windowsでパーティション操作をしていて/homeのパーティションを飛ばしてしまいましたorz

うわぁぁぁん(TT)。Windowsのばかー。不明なパーティション*1だからって隣り合うパーティションまで飛ばすなー*2。Kubuntuの環境を返せー。

ほぼ環境が整った飛ばす直前のKubuntu

x41-080915.png

これからKubuntuの入れ直しですorz

*1 : ext3でフォーマットされていた

*2 : 飛ばしたかったのは未フォーマットのパーティション

2008/09/13(土)今日の駄目すぎる瞬間

ThinkPad X41にWinXPとKubuntuのデュアルブート構成を行うためにパーティション調整をする際に誤ってパーティション構成全てを壊してしまった。リカバリメディアからの復旧を試みるも、リカバリメディア自体がうまく作成できていないという有様。

と、いうことでリカバリメディアではなくWindows XPのOEMメディアからインストール。
これからパッチ当て祭りです。

進捗 2008/09/13

  • Windows Update完了(Windows XP SP3 アップグレード含む)
  • NICドライバ導入
  • ThinkVantage System Update によるドライバ/ソフトウェア導入 ←いまここ

ToDo

  • Windows XP
    • ATOK導入
    • Norton Client Security導入
    • Windowsの環境設定
    • その他のソフト導入
  • Kubuntu
    • インストール
    • ATOK X3導入
    • 環境構築
  • HDD イメージバックアップ作成

LinuxにおけるFAT32フォーマットの方法

2008/09/12PC::Linux/BSD

Linuxであっても、リムーバブルメディアの類を利用する場合はFAT/FAT32のフォーマットを行う必要があります*1。その際のメモ。

*1 : 理想を言えば、ジャーナリングを採用したファイルシステム(NTFS/ext3等)を用いたいところである。が、NTFSはMSが詳細仕様を公開していないためにLinuxの読み書きは危険とされており、筆者のようなLinux環境をメインで使用する場合には推奨されない。一方、ext3などのファイルシステムでは世の大半を占めるWindows環境では標準で読み込むことが出来ない。このため、仕方なくFAT32で運用している。MSは仕様を公開しるー。FAT32じゃファイルが壊れやすいんじゃー

環境

OS
Kubuntu 8.04.1 日本語ローカライズド
リムーバブルメディア
SONY POCKETBIT (8GB)*2

POCKETBIT (8GB)の詳細

$ sudo fdisk /dev/sde
コマンド (m でヘルプ): p

Disk /dev/sde: 8119 MB, 8119648256 bytes
250 heads, 62 sectors/track, 1023 cylinders
Units = シリンダ数 of 15500 * 512 = 7936000 bytes
Disk identifier: 0x********

*2 : 容量と値段に惹かれて購入したUSBメモリ。同一の価格で東芝製のものがあったのだが、デザインで選んでしまい今非常に後悔している。その一番の理由が読み書きのパフォーマンスが非常に悪い。せっかくある8GBの領域のほとんどが無駄となってしまっている。ReadyBoost対応を謳っている東芝製ならこんな事にはならなかっただろう(TT) もう二度とSONYのUSBメモリには手を出しません

作ってみる

1. パーティション分割

まずはパーティション分割から。通常、市販のUSBメモリなどを購入した場合は基本パーティションが1つだけあるような状態となっているはずですので、特に問題がない場合はそのまま運用します。

ちなみにWindowsではUSBメモリのパーティションを分割することは出来ませんが、Linuxのfdiskでは通常のディスクと同じように扱うことが可能です。

2. 領域タイプの設定

以下の様な場合を例とする

デバイス Boot      Start         End      Blocks   Id  System
/dev/sde1               1        1023     7928219   83  Linux

fdiskでパーティションを分割したときの新規パーティションの領域タイプは0x83(Linux)となる。このため、今回の様にFAT32でフォーマットし運用する場合はこの領域タイプを変更する必要がある。

FAT32を表す領域タイプとして0x0B(FAT32)、0x0C(FAT32 (LBA))がある。これらの使い分けは以下の通り。

0x0B (FAT32)
パーティションの終了シリンダが1023、ディスクの先頭から8GBまでの領域にパーティションが収まる場合に利用してもよい。
0x0C (FAT32 (LBA))
LBA対応版。パーティションが終了シリンダが1023を超える場合にこちらを利用する。

3. フォーマット

実際にmkfsコマンドを利用してフォーマットする。

$ sudo mkfs.vfat -v -c -F 32 /dev/sde1

後はまったりとフォーマットが完了するまで待つだけです。

オプションの解説
-v
詳細な進捗を表示
-c
不良ブロックの精査を行う
-F 32
FAT32形式でのフォーマットの指定。-FだとFAT(16)となる。

参考

2008/09/11(木)ext3

ext3。何て読みますか?
今まで、「イー・エックス・ティー・スリー」と呼んでいましたが、読みづらいので正式名称を調べてみました。

ext3: 3rd extended file system

何か格好いいのでこれからはext3を「サードエクステンデッド」って呼ぶことにしますw