2011-04-24

LVM 上の EXT3 パーティションを縮小

EXT3 の縮小の方法などを紹介する.

ここでは, いろいろと理由があって, /dev/sda 上にある /dev/VolGroup00/LogVol00 を 縮小して /dev/sdb 上に移動させる必要がでてきた. ext3 でフォーマットしてルートにマウントしているので, とりあえず runlevel 1 でスナップショット /dev/VolGroup00/snap1 を取ってから, パーティションを縮小, 新しいパーティションに dd でコピーする. やや複雑な手順になってしまった.

ファイルシステムのチェックと, ジャーナルの削除を行う. (ジャーナルの削除は不要かもしれない.)

# fsck /dev/VolGroup00/snap1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/snap1: clean, 502353/134217728 files, 18419731/134217728 blocks

# fsck -n /dev/VolGroup00/snap1
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
/dev/VolGroup00/snap1: clean, 502353/134217728 files, 18419731/134217728 blocks

# tune2fs -O ^has_journal /dev/VolGroup00/snap1

# e2fsck -f /dev/VolGroup00/snap1
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/VolGroup00/snap1: 502353/134217728 files (0.6% non-contiguous), 18386929/134217728 blocks

ファイルシステムの縮小. 操作が完了したら, 何ブロックになったか出力されるので, この数値を確認する. この例では, ちょうど 50331648 × 4096 = 192 × 10243 なので OK.

# resize2fs /dev/VolGroup00/snap1  192G
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/VolGroup00/snap1 to 50331648 (4k) blocks.
sudo tune2fs -O has_journal /dev/VolGroup00/snap1 
The filesystem on /dev/VolGroup00/snap1 is now 50331648 blocks long.

ジャーナルを戻す.

# tune2fs -O has_journal /dev/VolGroup00/snap1
tune2fs 1.39 (29-May-2006)
Creating journal inode: done
This filesystem will be automatically checked every -1 mounts or
0 days, whichever comes first.  Use tune2fs -c or -i to override.

縮小した領域を別のパーティションにコピーする.

# lvcreate -L 192G -n root1 VolGroup00 /dev/sdb2

# dd if=/dev/VolGroup00/snap1 of=/dev/VolGroup00/root1 bs=4096 count=50331648
(全てのブロックが書き込まれたか確認する.)

この操作中 (とくに resize2fs の間に), スナップボリュームの COW テーブルはかなりたくさん使用された. (もともとの /dev/VolGroup00/LogVol00 は 496GB 中 55 GB だけが使用されていた.)

  --- Logical volume ---
  LV Name                /dev/VolGroup00/snap1
  VG Name                VolGroup00
  LV UUID                ZBrQlU-Xhut-Efbu-uDmV-VG3n-yobg-tC0l9Y
  LV Write Access        read/write
  LV snapshot status     active destination for /dev/VolGroup00/LogVol00
  LV Status              available
  # open                 0
  LV Size                512.00 GB
  Current LE             16384
  COW-table size         64.00 GB
  COW-table LE           2048
  Allocated to snapshot  28.12% 
  Snapshot chunk size    4.00 KB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

2011-04-23

LVM 論理ボリュームを別の物理ボリュームへ移動

複数のハードディスクドライブを使用して LVM のボリュームグループ (VG) を構成した場合, VG 上の論理ボリューム (LV) は内部では物理ボリューム (PV) 上に割り当てられる. どの PV が割り当てられているかは
$ lvdisplay -m 
で知ることができる.

通常は1つの PV から順に確保されてゆくため, アクセスの多い LV が 1 台の HDD へ偏ってしまうことが起こりうる. このような状況になった場合でも, LV を使用中に使用する PV を変更することができる.

この手順は以下のようになる.

  • 別の PV へ複製 (ミラー) を作成する.
  • 元の PV の割り当てを削除する.

例えば, VG VolGroup00 上の LV LogVol01/dev/sda2 上に割り当てられている時に /dev/sdb2 へ移動する場合は, 以下のコマンドになる.

# lvconvert -m 1 --alloc anywhere /dev/VolGroup00/LogVol01 /dev/sdb2
# lvconvert -m 0 /dev/VolGroup00/LogVol01 /dev/sda2

2011-04-08

HDP2 Gold を Linux から使用したい

SKNETMonster TV HD シリーズ の一部の機種では, コピー制御機能を破る方法が発見された. Linux からでもディジタルテレビを視聴することできるようだ.

暗号チップ ASIE5606 の暗号は復号方法が公開された. (有志による解読が成功したのか, メーカから情報がもれたのか, 経路は不明.)
しかし, HDP2 Gold と呼ばれるボードからは ASIE5607 に交換され, まだ復号方法が公開されていない.
だた, ASIE5607 は TSSOP なので, ピンまわりにジャンパーを設ければ TS を取り出せるだろう. そのために必要な情報をまとめた.

HDP2 Gold ジャンパ

まず, チューナの出力ピン配置を以下のように番号づける. (背面から見た図)
+-----+
|    4|
|    3|
|    2|
|  1  |
+-----+

チューナ, ASIE5607, 5211 の対応するピン番号は以下のようになる.

Tuner5607入力5607出力5211 (1)5211 (2)
349306212
450296311
15128913
252316110

ASIE5607 の出力と 5211 の入力との間をカットし, チュナーの出力と 5211 の入力とをジャンパすればよい. ビットレートは 23Mbps 程度なので, 綺麗にジャンパする必要はないが, パターン幅が細い部分もあるので, 注意してほしい. ポリウレタン線 (直径 0.26mm) などでジャンパすれば問題ないだろう.

Linux ドライバ

Linux では,
  • v4l-dvb とそのパッチ + dvbstream
  • recfriio
のいずれかによって Monster TV HD シリーズからディジタルテレビの TS を取りこめる. v4l-dvb を使用すると, ダブルチューナにも対応できる. しかし, ASIE5607 には対応していない.

リンク

  1. MonsterTV HDUS改造 その2: ASIE5606のジャンパー方法
  2. ボクにもわかる地上デジタル - 地デジ資料編 - チャンネル表
  3. DVB Tools
  4. Linuxで『24時間ワンセグ野郎』と同等の環境を作る方法 ~ ドライバのコンパイルから dvbstream でのストリームキャプチャまで