Linux から Windows のホスト名を変更する

<< 戻る   トップ >>

Linux から ntfs 内の Windows ホスト名を変更する。

注意: 先週まで NFS exports として、hogohogo:/data0/pub を使用してきたが、今週より /var/pub に切り替える。

道具の確認: Fedora LiveCD/Core+Base で使用できる Script を確認した。sed, awk はもちろん、perl も使用可能。たいていのことはできるということだ。

chkreg: レジストリ内の Alpha/Numeric Unicode 文字列をカウントするツール

レジストリ内の Unicode 文字列を検索するツールを作った。ただし、文字列は Alphabet/Numeric である必要がある。いわゆる全角系の場合には使用できない。(/var/pub/bin/chkreg)

#!/usr/bin/perl
if ( $#ARGV < 1 ) {
        print "$#ARGV USAGE: chkreg string files...\n";
        exit;
}
$pattern = shift;
$pattern =~ s/(.)/$1\x00/g;
$count = 0;
while (<>) {
        if ( /$pattern/gi ) {
                ++ $count;
        }
}
print "Pattern $pattern found : $count.\n";

altreg: レジストリ内のAlpha/Numeric Unicode 文字列を置き換えるツール

ジストリ内の Unicode 文字列を置換するツールを作った。文字列は Alphabet/Numeric である必要がある。いわゆる全角系の場合には使用できない。oldstr より newstr の長さが短い場合は、NULL で差分を充填する。oldstr より newstr が長い場合、おそらくレジストリは破壊され、Windows はまともに起動しないだろう。(/var/pub/bin/altreg)

#!/usr/bin/perl -i
if ( $#ARGV < 2 ) {
        print STDERR "$#ARGV USAGE: altreg oldstr newstr files...\n";
        exit;
}
$old = shift;
$new = shift;
for ( $i = length( $new ); $i < length( $old ); ++ $i ) {
        $new .= "\x00";
}
$old =~ s/(.)/$1\x00/g;
$new =~ s/(.)/$1\x00/g;
$count = 0;
while (<>) {
        $count += s/$old/$new/gi;
        print;
}
print STDERR "$old >> $new : $count \n";

altreg を使用して /WINDOS/system32/config/system のホスト名を置き換えてみた。うまくいった。

bittorrent を利用したシステムを開発する前に、NFS による PC クローンシステム (専用起動 LiveCD とメニューシェル) を開発する。

Live CD 構築

ホスト ushi (仮名) を Live CD 構築マシンとする。まず、yum で livecd-tools をインストールする。

#yum install livecd-tools
=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 livecd-tools            noarch     009-1.fc7        updates            35 k
Installing for dependencies:
 mtools                  i386       3.9.10-4.fc7     fedora            210 k
 pykickstart             noarch     1.1.1-1.fc7      updates           182 k
 squashfs-tools          i386       3.2-1            fedora             82 k
 syslinux                i386       3.36-4.fc7       fedora            673 k
=============================================================================

Kick Start 設定ファイル の設定 (ネットワークの罠)

さっそく専用 LiveCD を組んでみたのだが、起動時にネットワーク接続が成立していないため失敗する。遅延して接続されるのだが、これまであまり見たことがない現象なので、しばし悩んだ。これは /etc/init.d/network を使用せずに /etc/init.d/NetworkManager を使用していることによる副作用ではないか、と考えている。非特定のマシンで使われるという LiveCD の使われかたからいって、最適な Network に自動接続するという NetworkManager を利用するは理にかなっているのだが。もしかすると、なにも Network パラメータの与えられていない LiveCD では、/etc/sysconfig/network に適当な値を与えてからじゃないと /etc/init.d/network は起動しないのかもしれない。明日、network も NetworkManager も動作しない LiveCD を作成して実証試験をしてみることにする。


作成: 2007-09-10 12:58:33.0更新: 2007-09-10 14:27:39.0
http://museo-anonimo.jp/nanban/?id=546,http://museo-anonimo.jp/nanban/tr/546