*1  3TB SATA HDD の Debian GNU/Linux での初期設定

HDDがなかなか安くならないなとしばらく様子を伺っていたが、自宅サーバの容量が一杯になりつつあるので流石に諦めてSeagate Barracuda 7200シリーズ 3.5inch SATA 6Gb/s 3TB 7200rpm 64MB 4Kセクター ST3000DM001$149.99 で購入。値段は1ドル80円換算で日本とほとんど変わらない。下記は Debian GNU/Linux wheezy/sid での設定とディスク内容のマイグレーションを備忘録として書いたものだが、正確性は担保しないので当然ながら自己責任で参考にしてください。

まずは自宅のHP ML115に追加接続して Linux で起動。ちなみに元々の disk が sda で新しく導入した disk が sdb 。
[    1.848040] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.856296] ata1.00: ATA-8: ST3000DM001-9YN166, CC4B, max UDMA/133
[    1.856301] ata1.00: 5860533168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    1.872281] ata1.00: configured for UDMA/133
...
[ 2.676866] sd 0:0:0:0: [sdb] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
[ 2.676872] sd 0:0:0:0: [sdb] 4096-byte physical blocks
[ 2.676935] sd 0:0:0:0: [sdb] Write Protect is off
[ 2.676939] sd 0:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2.676967] sd 0:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
起動時に認識はしている。BIOSなどによっては認識しないこともあるらしいのでそこは一安心。今回は2TBより大きなディスクなので fdisk/cfdisk では正しく扱えない (確か700GB程度しか認識しない状態になるはず) ため parted にて GPT を使う。まあ今時 parted だよねーという話ではある。ちなみに partition を切る必要が無ければ
 # mkfs -t ext4 /dev/sdb
とかして丸ごと使う分には 3TB でも問題なく行けるはず。さておき。下記ではまず最初に label を gpt に設定した後、1 を / partition (ext3, rootfs, bootable) 10GiB 、2 が swap で 4Gib、3 で残り全てをLVMに割り当てている。コンサバ気味に rootfs は lvm 上ではなく素の primary 上に ext3 で作っている。1 の start を 2048s にしているのは 0 だと alignment がどうのと怒られたから。なお parted は interactive なやりとり中に disk を実際にいじっているので操作間違いにはくれぐれも注意。X で使ってるなら gparted の方がいいかも。
# parted /dev/sdb
(parted) mklabel gpt
...
(parted) mkpart primary 2048s 10GiB
...
(parted) set 1 boot on
...
(parted) mkpartfs primary linux-swap 10Gib 14GiB
...
(parted) mkpart primary 14Gib -1s
...
(parted) set 3 lvm on
...
(parted) print
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 4295MB 4294MB ext3 primary
2 4295MB 8590MB 4295MB primary
3 8590MB 3001GB 2992GB primary lvm
(parted) quit
そうしておいて LVM 部分を更に /usr /var /home に切り分け。この辺は趣味の世界だけど、昔からの習性で自分で Linux を入れるときはなんとなくこの構成にしていることが多い。今時だと /var はもっと大きくてもいいが、Virtual Machine なんかも /home の下に作れば済むのでこれくらいにしてる。LVM の基本的な使い方は 基本的なLVMの使い方A Beginner's Guide To LVM 等を参照のこと。
# pvcreate /dev/sdb3
# pvscan
PV /dev/sda3 VG userspace lvm2 [2.72 TiB / 0 free]
Total: 1 [2.72 TiB] / in use: 1 [2.72 TiB] / in no VG: 0 [0 ]
# vgcreate uservolume00 /dev/sdb3
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "uservolume00" using metadata type lvm2
# lvcreate -L 10G -n usr
# lvcreate -L 20G -n var 
# lvcreate -l 100%FREE -n home
# lvscan
ACTIVE '/dev/uservolume00/var' [20.00 GiB] inherit
ACTIVE '/dev/uservolume00/usr' [10.00 GiB] inherit
ACTIVE '/dev/uservolume00/home' [2.69 TiB] inherit
あとは普通にファイルシステムを作る。
# mkfs -t ext4 /dev/uservolume00/home
# mount -t ext4 /dev/uservolume00/home /mnt
...

*2  rootfs その他を新しい disk に切り替え

元のファイルシステムは LVM とかじゃない素の partition なので、あまり素敵技術は使えない。もっと賢い方法があったら知りたいけど、とりあえず単純に rsync する。真面目にやる人は当然 single user mode でやりましょう。
# mkdir /target
# mount /dev/sdb1 /target
# mkdir /target/usr /target/var
# mount /dev/usrvolume00/usr /target/usr
# mount /dev/usrvolume00/var /target/var
# mount /dev/usrvolume00/home /target/home
# rsync -avD /etc /bin /sbin /boot /lib /lib32 /lib64 /usr /var /target
# rsync -avD /home /target
# rsync -avD /vmlinuz /initrd.img /target
mount で見て殆どの tmpfs, procfs, sysfs, udev, devpts, cgroup とかは勝手に面倒見てくれるはずなので directory だけ作っておく。
# mkdir /target/proc /target/sys /target/run /target/dev /target/root /target/mnt /target/tmp
新しいシステムでの /etc/fstab (/target/etc/fstab)を書き換え。 LVM じゃないやつは最初に UUID を取っておく。parted から label つけて使ってもいいけどそこはお好みで。
# blkid /dev/sdb1
/dev/sda1: UUID="......-.....-....." TYPE="ext3"
swap も確保してるので作っておく。今時の mkswap なら UUID も勝手に割り当ててくれるはず。
# mkswap /dev/sda2
/target/etc/fstab を編集。
UUID="......-.....-....." / ext3 defaults 0 1
/dev/uservolume00/usr  /usr  defaults  0  2
/dev/uservolume00/var  /var  defaults  0  2
/dev/uservolume00/home  /home  defaults  0  2

UUID="......-.....-....." none swap sw 0 0
あとは grub を入れれば終わり。そのまま入れても initrd 等がおかしくなるので新しい / に chroot して linux-image を reconfigure する作戦。あと grub-install は GPT だと文句を言ってくるので --force で無理やり入れてしまう。
# chroot /target
# dpkg-reconfigure linux-image-3.2.0-2-amd64
# grub-install /dev/sdb --force
とりあえず /boot/grub/grub.cfg の当該部分はこんな感じに。
menuentry 'Debian GNU/Linux, with Linux 3.2.0-2-amd64' --class debian --class gnu-linux --class gnu --class os {
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='(hd1,gpt1)'
        search --no-floppy --fs-uuid --set=root a61b7b93-5992-49d3-aa12-ea65ec3d3325
        echo    'Loading Linux 3.2.0-2-amd64 ...'
        linux   /boot/vmlinuz-3.2.0-2-amd64 root=UUID=a61b7b93-5992-49d3-aa12-ea65ec3d3325 ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.2.0-2-amd64
}
物理的に sda と sdb のケーブルを繋ぎかえて再起動すれば完了、のはず。UUIDやLVMで管理しているので繋ぎ変える必要はないのだけど、これも趣味の問題である。

Debian lenny intall to HP ProLiant ML115

Posted by yoosee on Debian at 2007-12-19 23:00 JST

*1  Debian lenny install to HP ProLiant ML115

というエントリを書こうと思ったが、正直拍子抜けするくらい何の問題もなくインストールが終わった。インストールには CD-ROM に焼いた Debian-Installer netinst amd64 を利用。一部に書かれていた PS/2 キーボードが認識しなくなるという事象も無い。

Dual Core の AMD Opteron 1210 は問題なく 2CPUs として認識。
SMP: Allowing 2 CPUs, 0 hotplug CPUs
...
Dual-Core AMD Opteron(tm) Processor 1210 stepping 03
...
Calibrating delay using timer specific routine.. 3602.83 BogoMIPS (lpj=7205669)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
Onboard NIC も問題なく認識。ドライバは tg3 のようだ。
eth0: Tigon3 [partno(N/A) rev 4201 PHY(5750)] (PCI Express) 
  10/100/1000Base-T Ethernet 00:1c:xx:xx:xx:xx
SATA HDD は udev から /dev/sda として認識されている。UATA Slave に繋いだ HDD は /dev/hdb として認識。ちなみに UATAとSATAの両方にHDDを繋いでいたら、UATA側が優先BootデバイスになっていたのでBIOSから起動順序を変更した。トラブルといえるのはこの程度か。USB, Serial, ACPI, CD-ROM Drive の認識もインストーラお任せで特に問題無し。

チップセットは NFORCE-MCP55 というものなのだが、i2c-nforce が attach は出来るものの CPU core temp 程度しか取得できない。M/B温度、電圧、ファン速度の取得は出来ないんだろうか。HDD に関しては SATA, UATA 共に temp は hddtemp / smartctl で取得が可能、S.M.A.R.T 情報は smartctl から普通に取得が可能。

ところで Debian での package install や build が体感的に以前のマシン(P4 1.7GHz) と比べてものすごく速くなったんだが、DualCore の恩恵なのか、それとも SATA に繋いだ Barracuda 7200.11 (ST3500320AS) のお陰だろうか。

*1  ノートPCの Debian を sarge から etch にあげる

upgrade を試みたらいきなり untrusted package 警告が出たので、 apt-key update でアップデート。etch のキーは archive-key-4.0.asc にあるようだ。取り込み後、再度 aptitude update して完了。

sarge → etch の作業は、昔の dist-upgrade よりはあまり問題なく上がるようになったように思うし、conflict も深刻な物は殆んど無かったが、それでも厄介な部分は幾つかあった。特に xfree86 → xorg の変更に時間を使った。

*2  xfree86 → xorg への upgrade

設定ファイルの書式自体は大差ないのでさほど困らなかったが、どうにもうまく X が起動しない。しばらく悩んでからようやく、 ~/.xsession から呼び出している gnome-session が upgrade 時に一時削除されたことに気づく。/var/log/Xorg.0.log は見ていたのに ~/.xsession-errors をちゃんと見ていなかったのが敗因か。起動後も、どうもフォーカスがおかしいと思ったら 915resolution の解像度設定が間違っていた。やれやれ...

ちなみに CF-Y4 は xorg の i810 ドライバで動くことは確認。OpenGL は使えていないが DRI などは有効になっている。ただ更新後、X がやたらメモリを喰うようになった(VIRT 305MB, RES 41MB)気がする。動画や 3D 表示に使うことなど殆んどないのだから vesa に戻して様子を見てもいいかもしれない。

pilot-link が今さら新しくなってる

Posted by yoosee on Palm at 2006-09-30 23:42 JST

*1  pilot-link 0.12.1-5

気づいたら pilot-xfer の実行時表示が変わっていた。進行中の install byte size も出て、以前より分かり易くなっている。
% pilot-xfer -p /dev/ttyUSB1 -i DateBk6.prc DateBk6-Resources.prc

   Listening for incoming connection on /dev/ttyUSB1... connected!

   Installing 'DateBk6.prc' ... (910388 bytes)   892 KiB total.
   Installing 'DateBk6-Resources.prc' ... (76012 bytes)   971 KiB total.

   Thank you for using pilot-link.
Debian 的にはちょっと前の 0.12.0-1 で memosremidners といった一般用語過ぎるコマンドを名前変更しているようだ。/usr/share/doc/pilot-link/NEWS.Debian.gz によると以下のようになっている。
pilot-link (0.12.0-1) experimental; urgency=low

  * To avoid namespace pollution a lot of commands from pilot-link have been
    renamed from foo to pilot-foo. So if you used a pilot-link command in a
    script you will have to update the script.

    The old name/new name list is:
     debugsh -> pilot-debugsh
     dlpsh -> pilot-dlpsh
     hinotes -> pilot-hinotes
     memos -> pilot-memos
     pi-csd -> pilot-csd
     pi-getram -> pilot-getram
     pi-getrom -> pilot-getrom
     pi-getromtoken -> pilot-getromtoken
     pi-nredir -> pilot-nredir
     reminders -> pilot-reminders

    Also note that the pilot-undelete has been removed.

 -- Ludovic Rousseau <rousseau@debian.org>  Fri,  1 Sep 2006 16:55:43 +0200
そういえばいまさら気づいたけど read-ical なんて言うコマンドもいつのまにかあるんだな。ちょっと試してみるか。

*1  それPla(ry Plannet

本文やコメントに それPla と言う単語があったら取得してくる Plannet があったらどうかなーと、それだけのネタ。

そう言えば休み中に Plagger を入れてみようと思って調べてみると、Debian なら
deb http://debian.hansode.org/ ./
を /etc/apt/sources.list に入れればいいと言うことが分かったんだけど、いざ入れる段になったら CPAN package を 100 個以上入れようとすることにびびって中断したのだった。ぼちぼち諦めて(なにを?)入れるかな。

initrd.img の中身を見る

Posted by yoosee on Debian at 2006-03-05 23:42 JST

*1  initrd.img の中身は gzip された cpio archive

Debian で linux-image-2.6.x といったものをインストールすると、mkinitrd によって /boot/initrd.img-2.6.15-1-686 といった initrd イメージが作られる。実際にはこのファイルは gzip された cpio archive らしく、以下のようにすると展開できる。
 % mkdir /tmp/initrd && cd /tmp/initrd
 % gzip -dc /boot/initrd.img-2.6.15-1-686 | cpio -i
 20487 blocks
 % ls -F
 bin/  conf/  etc/  init*  lib/  modules/  sbin/  scripts/
cpio -pLd と gzip で元の initrd.img を作れる、と言うか mkinitrd がしているのはそう言う操作。

Debian GNU/Linux 3.1 "sarge" Release

Posted by yoosee on Debian at 2005-06-07 23:42 JST

*1  Debian GNU/Linux 3.1 がリリース

おー。3 年弱の開発期間を経て、遂にリリース。貰ったタレコミを編集してスラドの記事も載せたけど、この手の記事にしては結構コメントがついてる気がする。しかし手元にあるのは概ね sid(unstable) か sarge(testing) だったという現実。

Debian sarge が freeze

Posted by yoosee on Debian at 2005-05-04 23:42 JST

*1  Debian Sarge Freeze

使っているだけの身で愚痴るのもなんだが、やっとか…。表に出てるサーバ以外は既に殆んどが woody から sarge を通り越して sid になっちゃってるなぁ…。まぁ何はともあれ新しく入れやすくなるしありがたいことだ。

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

Monthly Archives

Select Month to read
  

Ads

Recent Entries

Related Sites