トップ «前の日記(2011-09-26) 最新 次の日記(2011-09-28)» 編集

muneda's diary


2011-09-27 曇り [長年日記]

_1 Python デビュー

先人たちの遺産がうまく動かなくなってたのでメンテ.

今まで書かず読まず嫌いだったけど,Python意外と悪くないね.for文のあとにelseが続けられるのが気に入った.今回の修正にピッタリ.tabが面倒かなと思ったが,Emacsの補完機能がうまく処理してくれて助かった.現在のtab位置がどのブロックを閉じるのかというのがmini-bufferに出てわかりやすい.

でも自分で何かを一から書くときに使うかと言われると,それは微妙.

今回Pythonデビューしたことにより,ホームディレクトリ配下には

  • hoge
  • hoge.txt
  • hoge.sh
  • hoge.rb
  • hoge.py

の一時ファイルが並ぶことに.これらのファイルはちょっとした文法のチェックをするときなどに使っている.

そうそう,やっと先日買った Python: Pocket Reference (Pocket Reference (O'Reilly))(Mark Lutz)を使った.

Tags: Linux

_2 Fedora16 Alpha Install

マシンが一台出てきたのでFedora16をインストール.

マシンにはすでにシステムが複数インストールされており,それらを残しつつ古いシステムが入ったパーティションにFedora16 Alphaをインストールすることに.

/dev/sda1 共通の/boot相当のディレクトリ
/dev/sda2 システムA
/dev/sda3 swap
/dev/sda4 システムB
/dev/sda5 システムC
/dev/sda6 システムD
/dev/sda7 システムE
/dev/sdb1 システムF
/dev/sdb2 データ用?

みたいな感じになってて,今回はシステムDのところにインストールする.

Fedora16はブートローダーにgrub2を採用したのだが,これに大きなバグがあってパーティションの先頭にgrubをインストールすることができない*1.GUIでのインストールの最後に

Warning
There was an error installing the bootloader.
The system may not be bootable.

というウィンドウが出る.コンソールに移りgrub2-installを試そうとしたのだが,そのままgrub2-installを実行すると

# grub2-install /dev/sda6
/sbin/grub2-setup: Not found.

となってしまう.grub2-*は自分が/sbinにインストールされていることを前提としている様子.

# which grub2-setup
/mnt/sysimage/sbin/grub2-setup

とのことなので,

# chroot /mnt/sysimage

として対処するも,

# grub2-install /dev/sda6
/sbin/grub2-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition.  This is a BAD idea..
/sbin/grub2-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
/sbin/grub2-setup: error: will not proceed with blocklists.

というエラーメッセージが表示される.無視して進み,実際に起動しようとしても2nd-stageが見つからないとかいうメッセージでシステム起動できず. ちょろっとググったらこの問題はknown bugのようでFedoraのページに対処法が記述されていた.

例に従ってリブートし,grubでpxebootの設定をしてあった行を

root(hd0,X)
kernel /vmlinuz rescue
initrd /initrd.img

としてrescueモードでシステムを起動.

# chroot /mnt/sysimage
# grub2-install --force '(hd0,5)'
/sbin/grub2-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition.  This is a BAD idea..
/sbin/grub2-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.

とgrub2のインストールは無事完了.と思ったが,やっぱり起動できない.

Error 13: Invalid or unsupported executable format

となる.何が違うんだろうか.今回Fedoraのページで案内しているとおりにリブートしてレスキューモードにて対処したがよく考えたらgrub2-installをするだけなのでインストール時にtty2でそのままコマンドを発行すれば済むのでは?と思いそのようにしてみる.もう一度インストールを最初からやり直し,今度は先のwarningメッセージが出てリブートする前にコンソールに移動しgrub2-install --forceを実行.リブートしてシステムを起動させたら今度は無事にgrubが起動できた.

とりあえずシステム起動できるようになったのでまずは第一段階クリア.

Tags: Fedora Linux

*1 MBRにはできる

_3 Fedora16 Alpha /etc/rc.local

initからsystemdへの移行に伴いデフォルトでは/etc/rc.localファイルの使用が廃止となった.後方互換は残されているのでそれを利用する.

$ systemctl list-units | grep rc-local
rc-local.service loaded failed failed /etc/rc.local Compatibility

/etc/rc.local*1を作成し,そこに実行したいコマンドを記述.ファイルに実行属性を付け,systemdを再起動*2.起動後確認すると

# systemctl list-units |grep rc-local
rc-local.service loaded active exited /etc/rc.local Compatibility

となり起動していることを確認.

Tags: Fedora Linux

*1 今回は/etc/rc.d/rc.localへのシンボリックリンクとした

*2 再起動の仕方が分からなかったので,今回はシステムの再起動

_4 Fedora16 Alpha runlevel

これまでの/etc/inittabでは制御できなくなった.

ファイルには

# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /etc/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two  main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To set a default target, run:
#
# ln -s /lib/systemd/system/<target name>.target  /etc/systemd/system/default.target
#

とある.3(マルチユーザー)と5(GUI)はいいとしてランレベル1/2/4を使う場合にはどうする?カーネルオプションで1/Sを指定した場合はどうなるんだろうか.

よく/etc/rc.3ディレクトリ配下にS99hogeみたいなスクリプトを置いて途中でリブートするようなテストを自動実行させるんだが,途中意図的に一時停止したい場合はランレベル4で起動させて割り込んでたんだが,systemdではこれが簡単にはできなくなりそう.対処策を考えないと.

それにしてもこの/etc/inittabファイルには感心した.古いファイルの意味を知っててそれを編集しようとした際にその対処方法が変わったのでこう対処して欲しいという内容.よく版数アップで旧来の方法が変更され,ファイルもなくなって途方に暮れるというのがあったが,これなら大丈夫.上に書いた/etc/rc.localの方も同じように対処されてたらあれこれググらなくても済んだのに.

Tags: Fedora Linux

過去の日記
2002|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|05|06|
トップ «前の日記(2011-09-26) 最新 次の日記(2011-09-28)» 編集