2012年09月06日

systemd移行の大まかな流れ。archlinux全般。

systemdへ移行したarchlinux(実際にはbang)は、
いまのところ、非常に動作が安定している。
systemdは、いいことかもしれない。

それに反し、移行していないarchたち(3つとも
glibc問題はクリアしている)あるが
ときどき動作が重くなることがある。

systemdを受けいれず、
kernel更新を止めたまま、他のパッケージだけ
アップデートしていくと、kernelとの折り合いというか、
未対応とまではいかくくても、
しっくりいかない、ということはあるのかも。

じぶんが更新時にやったことを大まかに言う。

/etc以下などにある、新しい設定ファイルには
すべてpacnewという語尾名が付いている。
これをぜんぶアップデートした。
たとえば、/etc以下では、
rc.conf,rc.local,protocols,services
/etc/pam.d以下では、loginなど。

pacnewで検索かけるとまだあった、あらら。

/etc/gshadow.pacnew
/etc/pacman.d/mirrorlist.pacnew
/etc/grup.pacnew
/etc/slim.conf.pacnew

4つもある。早く上げたほうがいい、
でやってみた。pacmanのmirrorlistと
groupは、要注意。
古いmirrorlistは、接続先の全部が
開いちゃってるが、新しいのは全部閉じている。
そのままでは、どこにも接続できず。
groupは、起動権限みたいなのが記してあって、
古いのと見比べて、自分のユーザー名を新しいものに
追加し使うべきだろう。
slim.confは、そのまま移行すると、
ピンクのログイン画面になったよ。
ファイル内部の記述レベルで戻した。

pacnewのファイルと、それまで使っていた当該ファイルは、
一応、両方開いて、見比べたほうが賢明。
そして、これまでのファイルは、その語尾に.oldなどと
付けて、捨てずに取っておくこと。

groupファイルの変更をやっているとき
どういうわけだか、sudoersの
username ALL=(ALL) ALLの記述が外れた。

とにかく、全部アップデートする。


それから、archのwikiなど見て、
特に、rc.confに記述してあった内容は、分散して
どこのファイルが代替するのか、よく調べて、
直す必要がある。なんか、あちこち
バラバラになる感はある。

それが済んだら、kernel、systemdなど、
一気に最新までインストールする。

そして、systemdで立ち上がるように、
menu.listなり、grub2だったら、
/etc/default/grubでやるんだと
思うけど、起動kernelのラインの後ろに
init=/bin/systemdを追記して、
再起動する。

起動しなくなってしまったときは、
debianか、ubuntu。liveなcd等にお出まし
いただいて、設定を修正する。

無事起動できても、不具合は
あれこれ出るのはしょうがない。

特に、rc.confでdaemon登録していた
ものは、ぜんぶ動かなくなる。
rc.confは、ファイル自体が亡くなる。

で、systemdのコマンド、
systemctlを使って、起動するように
直す必要がある。

じぶんは、このコマンドの意味をもうひとつつかめて
いないけど、必要なものすべてを動くようにはできたから、
じぶんと似たような初心者でもできるだろう。

仕上げは、起動kernelのラインから、
init=/bin/sytemd を外す。

そして、ジャジャジャジャーン!と
rebootだ。運命やいかに?

一極集中をやめ、分散させたことで、
PCの挙動は安定しているようではある。
userには、負担がかかる方法けど。
posted by ブログ開設者 at 14:51| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

インストール修正版。gentoo

desktopマシンに入れるとして。
あくまでも個人的にやったことの足跡。

■インストールiso入手先
http://gentoo.channelx.biz/releases/x86/current-stage3/install-x86-minimal-20120710.iso

■livecdの起動中の要点
boot:でリターンキー。
keymap選択画面で、素早く[22]と入れてリターン。
つまり、キー配列をjp106にする。

■ネットとの接続
ふつうは、起動を終えれば、すでにネットに
つながっているらしい。

# /sbin/ifconfig

で、じぶんのip、broadcast、netmaskなどが
表示されれば、ほぼつながっている。確認は、

# ping -c 3 www.gentoo.org

でpingが戻ってきたら、ok

(私の場合)
■livecd起動後
# net-setup eth0(wiredで接続)
 ※livecdだけで使える機能!

■hddパーティション
# fdisk /dev/sda
習うより慣れろ、の世界だった。
コマンド「P」→状況表示
コマンド「n」→新しいパーティション作成
コマンド「d」→パーティション削除
コマンド「a」→ブートフラグ付け /bootパーティションに。
コマンド「t」→ファイルシステムの選択。
     ※82=swap
コマンド「w」→設定内容を執行(ディスクに書き込み)

※パーティションを「容量」で切っていけるので助かった。
+と、数字の後ろにMとかGとか単位を付けるのを忘れないこと。

/dev/sda1 /boot
/dev/sda2 sw
/dev/sda3 /

の3つでやると、公式マニュアルに沿うことになり、
マニュアル自体も読みやすい。

で、ファイルシステムをメークし、マウント。
# mkfs.ext2 /dev/sda1
# mkfs.ext3 /dev/sda3
# mkswap /dev/sda2
# swapon /dec/sda2
# mount /dev/sda3 /mnt/gentoo
  ※gentooディレクトリは、livicdに元から在る
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot

■gentoo本体をダウンロード
# cd /mnt/gentoo
# links2 http://www.gentoo.org/main/en/mirrors2.xml

 stage3-i686-20120710.tar.bz2
 portage-latest.tar.bz2

※じぶんが落としたところは、gentoo.channelx.biz
 livecdから見て今居る/mnt/gentoo/。で、解凍する。

# tar xvjpf stage3-i686-20120710.tar.bz2
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
 ※ふたつの操作を合わせると、けっこう時間がかかる。

# nano -w /mnt/gentoo/etc/make.conf

この大事らしいところの記述内容(カスタマイズに重要?)は、

# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

などとできる上出来なツールがある(でもインストール後の本体では使えない)

上は、emergeするときの落としてくる接続先の設定。
下のほうは、インストールデータをsyncするための接続先の設定。

この時点のmake.confの記述内容は、

CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j5"
GENTOO_MIRRORS="http://gentoo.channelx.biz/"
SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"
USE="-gtk -gnome qt4 kde dvd slsa cdr"

にした。
 ※sync先も、こんどは日本にした。
 ※GENTOO_MIRRORSは、何か所でも登録できる。

chrootする前にresolv.confの情報をlivecdから本体に移植。
# cp -L /etc/resolv.conf /mnt/gentoo/etc

追加のマウントが必要であるそうな。
# mount -t proc none /mnt/gentoo/proc
# mount --rbind /dev /mnt/gentoo/dev

で、archbang (official版)でやった模擬的なやり方になるが、、、
[root@archbang xxx]# chroot /mnt/gentoo /bin/bash
archbang / # env-update
>>> Regenerating /etc/ld.so.cache...
archbang / # export PS1="(chroot) $PS1"
(chroot) archbang / #

完全にあちらの世界のrootに変身。
本体の本体による本体のための最初の操作は、
# emerge --sync
archの「pacman -Syy」と同じようなこと?!
時間がかかる。

# nano -w /etc/locale.gen

言語対応へ、いくつか行頭の#を外す。
en_US ISO-8859-1
en_US.UTF-8 UTF-8
jp_JP.EUC-JP/EUC-JP
ja_JP.UTF-8/UTF-8
ja_JP/EUC-JP

で、ロケール生成。
# locale-gen

タイムゾーンの設定。
# cp /usr/share/zoneinfo/Japan /etc/localtime

■カーネルソースを入れる。時間がかかる。

# emerge gentoo-sources

で、「超備忘録」のときの手操作でなはく、
かなりオートなkernel構築方法に軌道修正。

# emerge genkernel

として、まずgenkernelをインストール。
早速、使って、

# genkernel all

とすれば、ビルドできる。

★やればよかったな、と思う方法。
(# genkernel --menuconfig all)
ハード上、ネット接続に
問題の起こらなさそうな人は、
しなくても大丈夫だろう。
たぶん、中間的なやり方。私の場合、
途中でlanドライバを探せたと思う。

安全なぶん、余計なものも入るから、時間はかかる。
あとでわかったことだけど、すごい数のxxxxx.koなどが
/lib/modulres/3.3.8-gentoo に入る。

genkernelでやると、/boot以下にいきなり

kernel-genkernel-x86-3.3.8-gentoo
initramfs-genkernel-x86-3.3.8-gentoo

のふたつがちゃんとできている。

fstabの修正。hddの/dev/の後ろを実際のドライブ名に変更。
# nano -w /etc/fstab
/dev/sda1 /boot ext2 defaults,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1

/dev/cdrom /mnt/cdrom auto noauto,user 0 0

proc /proc proc defaults 0 0
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0

■設定関係

# nano -w /etc/conf.d/hostname
hostname="xxx" と記述。

# nano -w /etc/conf.d/net
config_eth0="dhcp" と記述。

★前回、無視していた。
# nano -w /etc/conf.d/hwclock
clock="UTC" と勝手に入っていた。

# nano -w /etc/conf.d/keymaps
keymaps="jp106" と記述。

★前回見逃してやっていなかった。情けない。
# cd /etc/init.d
# ln -s net.lo net.eth0
# rc-update add net_eth0 default

★インストール後、dhcpで接続するには大事だらしい。
前回では見逃していた。
# emerge dhcpcd

★前回、これもやっていなかった。
# nano -w /etc/hosts
127.0.0.1 localhost xxx ←ホスト名

★これは無視していた。
# nano -w /etc/timezone
Japan JST-9 と記述。自信なし。どっちかだけでいいんだろう。


私の場合限定。もちろんlanチップ対応の
module導入しているとしての話だけど。
# nano -w /etc/conf.d/modules
modules_3_3_8_gentoo="atl1c.ko" を追記。

# passwd
rootのパスワードを決める。

# emerge syslog-ng
# rc-update add sys-ng default
 ※システムログ関係を出力するものらしいけど、
 /var/logにerrors.logというファイルは
 出来なかった。

# emarge mlocate
※素早くファイル検索するためのインデックスを作るツールらしい。


■で、最後の仕上げ、grub。
# emerge grub

# nano -w /boot/grub/grub.conf
今、現に動いている状態のgrub.conf記述内容が下記。

default 0
timeout 5
splashimage=(hd0,0)/bootg/grub/splash.xpm.gz

title Gentoo Linux 3.3.8
root (hd0,0)
kernel /boot/linux-3.3.6-genkernel-x86-3.3.8-gentoo root=/dev/ram0 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-3.3.8-gentoo

genkernelして、すでにあらかたできていた。
(コメント行にしてあったかなの)記述内容の
kernelバージョン番号を代入しただけでokだった。

粛々とmbrへのgrubの書き込み
(初めてインストールするときのみ)
# grub --no-floppy
grub> root (hd0,0)
grub> setup (hd0) 
grub> guit 

umountもしっかりと。
# exit
# cd
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount -l /mnt/gentoo{/boot,/proc,}

で、
# reboot


[あとがき]
じぶんの場合、lanチップというじぶん固有の
ハード面の問題で苦しめられた。
上記の過程では省いているが、入れなければならなかった。
でもその苦労のおかげで、
判らないところに少し踏み込めることにもなった。
たとえば、kernelに組み込む、ということと、moduleとして、
取り扱うことの違いもすこしわかった。

まあそれにしても、lanのドライバがあってよかった。
なかったら、gentooさん、さようなら、に
ならざるを得なかったから。
ネットにつながらないと、何も始まらないし。

でも思った。コマンド叩いたあとのシェル表示は、
archlinuxに慣れているせいもあってか、
archのほうがわかりやすい。
もちろん、多くのインストールが
コンパイル済みでやれる、ってことはある。
馴れれば、gentooのやり方にも
馴染めるようになるんだろう。
posted by ブログ開設者 at 13:22| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

たまんネット。gentoo

九合目のつもりがとんでもない、五合目辺りだった。
なんとしても、ネットにつながらない。
livecdでつながっていたから、つながっているものと
決めつけているじぶんがいた。

最初は、設定のどこかが悪いか、通信に必要な
ツールがインストールされていない、と思いつめていた。
にっちもさっちもいかず、あれこれいじりすぎたこともあり、
最初にインストールしたgentooを消し。
新しくインストールすることにした。
その最中にそれとなく気づいた。gentooの中に
lanデバイスのドライバがないらしい、ってことに。

接続先がありません、みたいな表示が出るものだから、
てっきりつながってはいるような誤解があった。
何をやってもエラーしかでないし。
固定IPでがちがちに設定してもだめで、、、

きょう日、linuxでさえインストールして
ネットに即座につながらない、って聞いたことがない。

わがマザーボードのp8h67-vは、買ってから気づいたことだけど、
LAN接続のチップが聞いたこともないatheros社製。
OSに向けての識別機器ナンバーは、atl1cという代物。
音声デバイスではそこそこ名の通ったところらしいけどね。

で、このマザーボードを買ったとき、
ネットにつながらなくて、困ったことも思い出した。
当時まだ使っていたWidows7でも、
winベースでの呼び込みドライバインストールが
できなかったし、linux上では、「だましの手」をどこかで
入手して、関連ファイルを一部書き換えたのを思い出した。

ということでは、gentooでdefaultっぽく
扱われるデバイスであるわけがない。でもlivecdでは、
# net-setup eth0
とするだけで、つながる。
そこに落とし穴があったんだと思う。

で、再インストール中になんとなく
事の真相がわかってきて、やってみたことは、
kernelの再構築を、genkeanelで行ったこと。
お任せ構築をしてくれる初心者向け。

マニュアルには、 livecdに近い内容になる
なんて、書いてあるから。余計なものが
いっぱい入ったとしても、ネットにはつながるだろう、
との読みだった。

ところが、つながらない。
おっかしいんだよね。livecdではつながるのに。
インストールされたmoduleを
find /lib/modules/3.3.8-gentoo/ -type f -iname '*.o' -or -iname '*.ko' | less
と調べると、atheros製では、atl1.koのみあった。
もちろん、/etc/conf.d/moduleに登録したけど、接続できない。
名前がほとんどおんなじなんだから、つながってくれろ。

でしかたなく、もうひとつ、kernel構築にとりかかり、
# make menuconfig
として、マニュアルで構築することにした。
これがほんとに難しい、解らないし、判らない。

Device Driver---->
Networking device Support---->

以下だったと思うけど、
ダメだったドライバのほかに、3つのatheros用ドライバがあって、
全部選択することにし、あとものは適当に
選択して保存、コンパイル、インストールした。

再びfindコマンドで、moduleリストを呼び出すと、
宝石のように輝いているatl1c.koの名があった。
(menuconfigのリストには、このレベルでの名は表示されない)
/etc/conf.d/modulesに登録し、
できたカーネルも、ふたつめのgentooとして、
grub.confに登録した。

ところが、まだつながらない。
疲れたねえ。
つながらないときはどうなるか、
というと、gentooが起動しない。
新しいカーネルも、
/etc/conf.d/modulesは、
共用だから、2ついっしょに
同じところで動かなくなる。

仕方がないから、またぞろlivecdに
お出ましいただいて、/etc/conf.d/modulesの
記述方法を少しずつ変えて、なんども
トライするしかなかった。
動作したときの記述が、下記。

MODULES_3_3_8_gentoo="atl1c"

ついに、ついに、つながったのであった。
modulesファイルに、#付きで「=」の手前側の
見本があれこれあって、迷わされたよ。

こういうのって、ふつう、汎用ドライバみたいなもので、
つながるんじゃないのか。

ってことで、これだけ苦労して、
この間と同じ、雲海霧中の九合目?
(↑話がsystemdと混信して、失敬)

pingをwww.gentoo.orgに向けて
飛ばして、還って来たから、接続していることは
確実だ。起動画面にも項目が出たし。

やっと、X、デスクトップ構築に向かえる。
ちなみに、
# make menucofig
で構築したほうのkernelは、うしろのほうで
kernelpanicを起こして、使い物にならなかった。

moduleだけあとから
継ぎ足す方法ってないのかな。
超備忘録も早いうちに書き換えるつもり。
posted by ブログ開設者 at 00:11| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする