Trick or Treat!

Lilith タスクリスト

LAN接続ハードディスク「HDL-GT/GTR/GTR2U」シリーズ ご愛用のお客様へのご案内

2009年11月09日 23時19分51秒 | HDL-GT
LAN接続ハードディスク「HDL-GT/GTR/GTR2U」シリーズ ご愛用のお客様へのご案内


> 当社LAN接続ハードディスク「HDL-GT/GTR/GTR2U」シリーズにおいて、
> 製品に組み込まれている電源の一部で、故障の状況によってごく稀に電源部より若干の異臭、
> もしくは発煙を生ずる場合のあることが判明いたしました。
> 当該製品は本来、電源故障発生時には電源回路が停止しますが、故障発生時の電源再投入時に回路が停止する前に
> 一瞬電源が立ち上がってしまう故障のしかたがごく稀にあるため、発生するものです。

> この度、当該の故障のしかたを検知するように電源部コントロール機能を強化したファームウェアをご用意いたしましたので、
> 下記ページより、最新版ファームウェアアップデータをダウンロードして適用くださいますようお願い申し上げます。

あらまぁ、こう言った奴にぶち当たるのはずいぶんと久々だなぁ
うちのは例外なく、HDL-GTR2.0 の「 XM50000001xx ~ XM50001295xx 」に入っていました。

でも、まぁ…すでに保証きかない状態ですけどね

HDL-GT6.0 はたまた HDL-GT8.0 について

2009年10月06日 22時02分37秒 | HDL-GT
最初に言ってしまうが、この機器をもうこれ以上使い倒そうとは考えていないので
試す事はまずないと思うが、興味深い記事を書かれているblogを
HDL-GTシリーズつながりで拝見した。

その中で、HDL-GT4.0以上について書かれていたので、
以前調べていた情報を少し出してみる。

ディスク初期化プロセスの中に、下記の記載があるので、
そこに1.5TB、2.0TB用の処理を追記してやればたぶん動くと思う。

個人的にはやる意味がないので、やりたい人向けってことになる。


###############################################################################
# ディスク名からモデルで丸められたシリンダ数を得る
###############################################################################
__resetscript_disk2cyl() {
local DISK=${1}
local SECTOR=$(cat /sys/block/${DISK}/size)

if [ ${SECTOR} -lt ${SECTOR250} ]; then
echo -n "error"
return 1
elif [ ${SECTOR} -lt ${SECTOR300} ]; then
# 250x4
expr ${SECTOR250} / 255 / 63 - ${CYL_END}
elif [ ${SECTOR} -lt ${SECTOR400} ]; then
# 300x4
expr ${SECTOR300} / 255 / 63 - ${CYL_END}
elif [ ${SECTOR} -lt ${SECTOR500} ]; then
# 400x4
expr ${SECTOR400} / 255 / 63 - ${CYL_END}
elif [ ${SECTOR} -lt ${SECTOR750} ]; then
# 500x4
expr ${SECTOR500} / 255 / 63 - ${CYL_END}
elif [ ${SECTOR} -lt ${SECTOR1000} ]; then
# 750x4
expr ${SECTOR750} / 255 / 63 - ${CYL_END}
else
# 1000x4
expr ${SECTOR1000} / 255 / 63 - ${CYL_END}
fi

return 0
}


###############################################################################
# ディスク名からモデル名を得る
###############################################################################
__resetscript_disk2model() {
local DISK=${1}
local SECTOR=$(cat /sys/block/${DISK}/size)
local CAP=0

if [ "${SECTOR}" -lt "${SECTOR250}" ]; then
echo -n "error"
return 1
elif [ "${SECTOR}" -lt "${SECTOR300}" ]; then
# 250x4
CAP="1.0"
elif [ "${SECTOR}" -lt "${SECTOR400}" ]; then
# 300x4
CAP="1.2"
elif [ "${SECTOR}" -lt "${SECTOR500}" ]; then
# 400x4
CAP="1.6"
elif [ "${SECTOR}" -lt "${SECTOR750}" ]; then
# 500x4
CAP="2.0"
elif [ "${SECTOR}" -lt "${SECTOR1000}" ]; then
# 750x4
CAP="3.0"
else
# 1000x4
CAP="4.0"
fi
/usr/bin/printf "${MODEL}" ${CAP}

return 0
}

HDL-GTRX化のための調査 その4

2009年10月02日 01時41分02秒 | HDL-GT
情報提供頂いた部分をまとめてみる。
Ver 1.31 をベースに話をします

編集するファイル
「 /usr/local/www/gate/service.cgi 」

■ 220行目から
&HDLcgi::table_header( __('共有サービスの設定') );

if( $modelname eq 'HDL-GTR' ) {

&HDLcgi::table_row( $p, 40, "
" . __('有効にするサービスの選択') . "
"
, &HDLcgi::popup_help( qq||
. qq|<input type="checkbox" name="samba" value="1" $samba_on > |
. __('Microsoftネットワーク ファイル共有') . qq|    |
. qq|<input type="checkbox" name="sambalog" value="1" $sambalog_on >|. __('アクセスログを記録') . "

", "svc_sambalog" )
. &HDLcgi::popup_help( qq|<input type="checkbox" name="atalk" value="1" $atalk_on > |
. __('AppleShareネットワーク ファイル共有') . "

", "svc_netatalk" )
. &HDLcgi::popup_help( qq|<input type="checkbox" name="vsftpd" value="1" $vsftpd_on> |
. __('FTP') . "

", "svc_ftp" )

# DLNAの設定をWEB管理画面に出すための記述を追記
# 記述が崩れるので、書く内容は245行目と246行目のDLNAがらみを追加。


}else{

==================================
「 /usr/local/www/gate/service_set.cgi 」

■ 133行目から

###----- 設定反映 -----###
if( $modelname eq 'HDL-GTR' ) {
$serv->set ( 'samba' => $servhash{"samba"} );

$smb->set('config=','audit',$sambalog);

$serv->set ( 'netatalk' => $servhash{"netatalk"} );
$serv->set ( 'vsftpd' => $servhash{"vsftpd"} );
#ここに下記一行追記
$serv->set ( 'dlna' => $servhash{"dlna"} );

}else{
$serv->set ( 'samba' => $servhash{"samba"} );
$serv->set ( 'netatalk' => $servhash{"netatalk"} );
$serv->set ( 'vsftpd' => $servhash{"vsftpd"} );
#$serv->set( 'cupsys' => $servhash{"cupsys"} );
$serv->set ( 'dlna' => $servhash{"dlna"} );
}


■ 163行目から

&HDLcgi::table_header ( __('サービス設定') );

$str_en = __('有効');
$str_dis = __('無効');


if( $modelname eq 'HDL-GTR' ) {
$p = &HDLcgi::table_row ( $p, 40, __('Microsoftネットワーク共有') , ($servhash{"samba"} == 1)? $str_en: $str_dis );
$p = &HDLcgi::table_row ( $p, 40, __('Microsoftネットワーク共有アクセスログ') , ($sambalog == 1)? $str_en: $str_dis );
$p = &HDLcgi::table_row ( $p, 40, __('AppleShareネットワーク共有') , ($servhash{"netatalk"} == 1)? $str_en: $str_dis );
$p = &HDLcgi::table_row ( $p, 40, __('FTP') , ($servhash{"vsftpd"} == 1)? $str_en: $str_dis );

#ここに下記一行追加
$p = &HDLcgi::table_row ( $p, 40, __('DLNA Server') , ($servhash{"dlna"} == 1)? $str_en: $str_dis );

}else{
$p = &HDLcgi::table_row ( $p, 40, __('Microsoftネットワーク共有') , ($servhash{"samba"} == 1)? $str_en: $str_dis );
$p = &HDLcgi::table_row ( $p, 40, __('AppleShareネットワーク共有') , ($servhash{"netatalk"} == 1)? $str_en: $str_dis );
$p = &HDLcgi::table_row ( $p, 40, __('FTP') , ($servhash{"vsftpd"} == 1)? $str_en: $str_dis );
$p = &HDLcgi::table_row ( $p, 40, __('DLNA Server') , ($servhash{"dlna"} == 1)? $str_en: $str_dis );
}


==================================
実はこれだけでは、ダメなので、さらに編集を追加する

「 /usr/local/www/gate/share_add.cgi」

■ 299行目

function update_service_map(win,mac,dlna,anonftp,userftp)
{
if(win){
document.thispage.winhtm.disabled = false;
document.thispage.trashhtm[0].disabled = false;
document.thispage.trashhtm[1].disabled = false;
}else{
document.thispage.winhtm.disabled = true;
document.thispage.winhtm.checked = false;
document.thispage.trashhtm[0].disabled = true;
document.thispage.trashhtm[1].disabled = true;
document.thispage.trashhtm[0].checked = false;
document.thispage.trashhtm[1].checked = true;
}
if(mac){
document.thispage.machtm.disabled = false;
}else{
document.thispage.machtm.disabled = true;
document.thispage.machtm.checked = false;
}

# 下記6行を追加する

if(dlna){
document.thispage.dlnahtm.disabled = false;
}else{
document.thispage.dlnahtm.disabled = true;
document.thispage.dlnahtm.checked = false;
}



if(anonftp){
document.thispage.anonhtm.disabled = false;
}else{
document.thispage.anonhtm.disabled = true;
document.thispage.anonhtm.checked = false;
}
if(userftp){
document.thispage.ftphtm.disabled = false;
}else{
document.thispage.ftphtm.disabled = true;
document.thispage.ftphtm.checked = false;
}
return true;
}


■ 504行目

# 512行目に525~527行目の記述を追記


. &HDLcgi::popup_help( qq|<input type="checkbox" name="dlnahtm" value="on"> |
# . qq|<IM G Src="/img/protocol_dlna.gif" Width="29" Height="19">|
. __('DLNA Serverで公開'), "svc_dlna" )



==================================

「 /usr/local/www/gate/share_change.cgi」

■ 289行目

if($modelname ne "HDL-GTR"){
$sevice_frame .= &HDLcgi::popup_help( qq|<input type="checkbox" name="dlnahtm" value="on" $dlnachk onClick="setradio(3)">|
. __('DLNA Serverで公開'), "svc_dlna" ) . "";
}

HDL-GTRの時にはDLNAが出ないので、IFをコメントアウトする(289行目、292行目をコメントアウト)



HDL-GTRシリーズ ファームウェア@1.29

2009年01月31日 16時01分23秒 | HDL-GT
HDL-GTRシリーズ ファームウェアが更新されたようだ。

■Ver.1.28 → Ver.1.29(2009/01/30)

・Active Directory 環境において、Windows Vista SP1 のクライアントから
LAN DISK上のドメインユーザ/ドメイングループ共有を参照しようとすると
認証ダイアログが表示されて参照が行えない場合がある件を修正。
・Windows Server 2008 へのActive Directory 参加に対応。

どうやら、Windows Server 2008に対応した模様。

HDL-GTRX化のための調査 その3

2008年10月13日 23時49分43秒 | HDL-GT
/usr/local/www/gate/service_set.cgi の中にこのような部分がある。

ここで、GTRとGTの差異をWeb画面上に出しているように思える。
なので、GTR側に $serv->set ( 'dlna' => $servhash{"dlna"} ); を追加すれば
 Web上で設定できるのではないかと思う。
&HDLcgi::table_header ( __('サービス設定') );

$str_en  = __('有効');
$str_dis = __('無効');


if( $modelname eq 'HDL-GTR' ) {
        $p = &HDLcgi::table_row ( $p, 40, __('Microsoftネットワーク共有')               , ($servhash{"samba"} == 1)?    $str_en: $str_dis );
        $p = &HDLcgi::table_row ( $p, 40, __('Microsoftネットワーク共有アクセスログ')     , ($sambalog == 1)?             $str_en: $str_dis );
        $p = &HDLcgi::table_row ( $p, 40, __('AppleShareネットワーク共有')              , ($servhash{"netatalk"} == 1)? $str_en: $str_dis );
        $p = &HDLcgi::table_row ( $p, 40, __('FTP')                                     , ($servhash{"vsftpd"} == 1)?   $str_en: $str_dis );
}else{
        $p = &HDLcgi::table_row ( $p, 40, __('Microsoftネットワーク共有')               , ($servhash{"samba"} == 1)?    $str_en: $str_dis );
        $p = &HDLcgi::table_row ( $p, 40, __('AppleShareネットワーク共有')              , ($servhash{"netatalk"} == 1)? $str_en: $str_dis );
        $p = &HDLcgi::table_row ( $p, 40, __('FTP')                                     , ($servhash{"vsftpd"} == 1)?   $str_en: $str_dis );
        $p = &HDLcgi::table_row ( $p, 40, __('DLNA Server')                             , ($servhash{"dlna"} == 1)?     $str_en: $str_dis );
}

ついでに、 /usr/local/www/gate/service.cgi にも同じように条件分けされてる部分があるので編集の必要がありそうだ。 &HDLcgi::table_header( __('共有サービスの設定') );


if( $modelname eq 'HDL-GTR' ) {

&HDLcgi::table_row( $p, 40, "<center>" . __('有効にするサービスの選択') . "</center>"
        , &HDLcgi::popup_help( qq||
        . qq|<input type="checkbox" name="samba"  value="1" $samba_on > |
        .  __('Microsoftネットワーク ファイル共有') . qq|    |
        . qq|<input type="checkbox" name="sambalog"  value="1" $sambalog_on >|. __('アクセスログを記録') . "<p>", "svc_sambalog" )
        . &HDLcgi::popup_help( qq|<input type="checkbox" name="atalk"  value="1" $atalk_on > |
        . __('AppleShareネットワーク ファイル共有') . "<p>", "svc_netatalk" )
        . &HDLcgi::popup_help( qq|<input type="checkbox" name="vsftpd" value="1" $vsftpd_on> |
        . __('FTP') . "<p>", "svc_ftp" )
        , ( $modelname eq 'HDL-GTR' )?  "select_gtr" : "select"
        );

}else{

&HDLcgi::table_row( $p, 40, "<center>" . __('有効にするサービスの選択') . "</center>"
        , &HDLcgi::popup_help( qq|<input type="checkbox" name="samba"  value="1" $samba_on > |
        .  __('Microsoftネットワーク ファイル共有') . "<p>", "svc_samba" )
        . &HDLcgi::popup_help( qq|<input type="checkbox" name="atalk"  value="1" $atalk_on > |
        . __('AppleShareネットワーク ファイル共有') . "<p>", "svc_netatalk" )
        . &HDLcgi::popup_help( qq|<input type="checkbox" name="vsftpd" value="1" $vsftpd_on> |
        . __('FTP') . "<p>", "svc_ftp" )
        . &HDLcgi::popup_help( qq|<input type="checkbox" name="dlnasv" value="1" $dlnasv_on> |
        . __('DLNA Server') . qq|  <a href="/gate/dlnafilter.cgi">| . __('アクセス制限') . qq|</a></div><DIV><IMG Src="/img/dixim_logo.gif" Style="height: 38px; width: 50px;">|, "svc_dlna" )

        , "select"
        );
}

HDL-GTRX化のための調査 その2

2008年10月13日 23時17分21秒 | HDL-GT
/usr/local/www/gate/ にDLNAに関する設定ページが格納されている
管理web画面にログインし、直接URLをたたくと表示がされる。
http://landisk/gate/dlnafilter.cgi

このページでやってることは
/mnt/hda5/dmsf_data/conf/access/default に
アクセス定義を書く処理等のようです。

sh-2.05b# cat /usr/local/www/gate/dlnafilter.cgi

#!/usr/bin/perl
# -*- mode: landisk-perl; coding: utf-8; -*-
#
# dlnafilter.cgi: DLNA アクセス制限の設定
# Copyright (C) 2004-2007 I-O DATA DEVICE,INC. ALL RIGHTS RESERVED.
#

# for debug
#use warnings;
#use strict;

sub BEGIN {
push(@INC, '/usr/local/bin');
push(@INC, '/usr/local/www/gate');
}

require "cgi-lib.pl";&ReadParse;

use POSIX;
use Locale::gettext;

use HDLdefines;
use HDLcgi;

sub __ {
dcgettext('dlnafilter', shift, LC_MESSAGES);
}


###############################################################################
# メインルーチン
###############################################################################
setlocale(LC_MESSAGES, &$HDLdefines::lang());
bindtextdomain('dlnafilter', '/usr/local/share/locale/www/gate');

## loginチェック
&HDLcgi::check_login( %in );

$| = 1;#バッファリング禁止。

##################################################################
#親プロセス
if ($pid = fork){

$res = waitpid $pid, 0; #子プロセス終了を待つ

exit(0);
}

##################################################################
#子プロセス
elsif(defined $pid){

require 'HDLsystem.pm';

# LEDの設定
$sys = HDLsystem->new( exclusive => 1 );
if (!defined $sys){
&HDLcgi::hdl_err_message("HDLsystem");
goto end_exit;
}
$sys->after_led( status => 'status_on' ),
$sys->set_led ( status => 'status_fastblink' );

# 引数取得
my $accesslist_in = $in{"accesslist"};
my $modifylist_in = $in{"modifylist"};
my $btn = $in{"btn"};
my $btn_allow = $in{"btn_allow"};
my $btn_deny = $in{"btn_deny"};
my $btn_del = $in{"btn_del"};
my @mac_list = ();
my $index;
my @access_tmp = ();
my @access_ip = ();
my @modify_tmp = ();
my @modify_ip = ();
my $access_btn = "";
my $modify_btn = "";

# DLNA アクセス制限モード取得
my $dlnaaccess = `sudo cat /mnt/hda5/dmsf_data/conf/access/default`;
chomp $dlnaaccess;

# ボタン処理
if ( $btn eq __('デフォルトを許可→禁止に変更') ) {
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/default > /dev/null`;
`sudo sh -c 'echo deny > /mnt/hda5/dmsf_data/conf/access/default'`;
$dlnaaccess = "deny";
`sudo /etc/rc2.d/S98dlna restart > /dev/null`;
} elsif ( $btn eq __('デフォルトを禁止→許可に変更') ) {
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/default > /dev/null`;
`sudo sh -c 'echo allow >> /mnt/hda5/dmsf_data/conf/access/default'`;
$dlnaaccess = "allow";
`sudo /etc/rc2.d/S98dlna restart > /dev/null`;
} elsif ( $btn_allow eq __('許可') ) {
if ( $dlnaaccess eq "allow" ) {
@maclist = split(/�/,$modifylist_in);
foreach (@maclist) {
`sudo cp -pf /mnt/hda5/dmsf_data/conf/access/deny/$_ /mnt/hda5/dmsf_data/conf/access/allow/ > /dev/null`;
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/deny/$_ > /dev/null`;
}
} else {
@maclist = split(/�/,$accesslist_in);
foreach (@maclist) {
`sudo cp -pf /mnt/hda5/dmsf_data/conf/access/deny/$_ /mnt/hda5/dmsf_data/conf/access/allow/ > /dev/null`;
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/deny/$_ > /dev/null`;
}
}
`sudo /etc/rc2.d/S98dlna restart > /dev/null`;
} elsif ( $btn_deny eq __('禁止') ) {
if ( $dlnaaccess eq "allow" ) {
@maclist = split(/�/,$accesslist_in);
foreach (@maclist) {
`sudo cp -pf /mnt/hda5/dmsf_data/conf/access/allow/$_ /mnt/hda5/dmsf_data/conf/access/deny/ > /dev/null`;
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/allow/$_ > /dev/null`;
}
} else {
@maclist = split(/�/,$modifylist_in);
foreach (@maclist) {
`sudo cp -pf /mnt/hda5/dmsf_data/conf/access/allow/$_ /mnt/hda5/dmsf_data/conf/access/deny/ > /dev/null`;
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/allow/$_ > /dev/null`;
}
}
`sudo /etc/rc2.d/S98dlna restart > /dev/null`;
} elsif ( $btn_del eq __('削除') ) {
@maclist = split(/�/,$accesslist_in);
foreach (@maclist) {
`sudo rm -f /mnt/hda5/dmsf_data/conf/access/$dlnaaccess/$_ > /dev/null`;
}
`sudo /etc/rc2.d/S98dlna restart > /dev/null`;
}


my $allow = `sudo ls -1 /mnt/hda5/dmsf_data/conf/access/allow`;
my $deny = `sudo ls -1 /mnt/hda5/dmsf_data/conf/access/deny`;

if ($dlnaaccess eq "allow") {
@access_tmp = split( /n/ , $allow );
@modify_tmp = split( /n/ , $deny );
} else {
@access_tmp = split( /n/ , $deny );
@modify_tmp = split( /n/ , $allow );
}
$index = 0;
foreach (@access_tmp) {
$access_ip[$index] = `sudo cat /mnt/hda5/dmsf_data/conf/access/$dlnaaccess/$_`;
$index++
}
# accessボタン
if ( $index > 0 ) {
if ($dlnaaccess eq "allow") {
$access_btn = qq|<input type="submit" value="| . __('禁止') . qq|" name="btn_deny">'."n".'<input type="submit" value="| . __('削除') . qq|" name="btn_del">|;
} else {
$access_btn = qq|<input type="submit" value="| . __('許可') . qq|" name="btn_allow">'."n".'<input type="submit" value="| . __('削除') . qq|" name="btn_del">|;
}
} else {
$access_btn = "";
}

$index = 0;
foreach (@modify_tmp) {
if ($dlnaaccess eq "allow") {
$modify_ip[$index] = `sudo cat /mnt/hda5/dmsf_data/conf/access/deny/$_`;
} else {
$modify_ip[$index] = `sudo cat /mnt/hda5/dmsf_data/conf/access/allow/$_`;
}
$index++
}

# modifyボタン
if ( $index > 0 ) {
if ($dlnaaccess eq "allow") {
$modify_btn = qq|<input type="submit" value="| . __('許可') . qq|" name="btn_allow">|."n";
} else {
$modify_btn = qq|<input type="submit" value="| . __('禁止') . qq|" name="btn_deny">|."n";
}
} else {
$modify_btn = "";
}


#
# HTML出力
#
if ($dlnaaccess eq "allow") {
&HDLcgi::page_header(
__('アクセス制限(デフォルト許可)'),
'',
'',
'',
'',
''
);
} else {
&HDLcgi::page_header(
__('アクセス制限(デフォルト禁止)'),
'',
'',
'',
'',
''
);
}

print < <SCRIPT LANGUAGE="JavaScript">

</SCRIPT>
EOM

print qq|<form name="thispage" method="get" action="/gate/wait_page.cgi" onSubmit="return disable()">n|;

#
# 新規ユーザの操作メニュー
#

&HDLcgi::table_header ( __('アクセスがあったDLNAクライアント') );
&HDLcgi::sub_header( __('選択'), __('MACアドレス'), __('IPアドレス') );
$p = 0;
$index = 0;
foreach ( @access_tmp ) {
$p = &HDLcgi::table_row3 ($p, 10, qq|
n<input type="checkbox" name="accesslist" value="$_">n
|, 40, $_, $access_ip[$index]);
$index++;
}
&HDLcgi::table_footer();
print $access_btn;
print "";

if ($dlnaaccess eq "allow") {
&HDLcgi::table_header( __('アクセスを禁止するDLNAクライアント') );
} else {
&HDLcgi::table_header( __('アクセスを許可するDLNAクライアント') );
}
&HDLcgi::sub_header( __('選択'), __('MACアドレス'), __('IPアドレス') );
$p = 0;
$index = 0;
foreach ( @modify_tmp ) {
$p = &HDLcgi::table_row3 ($p, 10, qq|
n<input type="checkbox" name="modifylist" value="$_">n
|, 40, $_, $modify_ip[$index]);
$index++;
}
&HDLcgi::table_footer();
print $modify_btn;
print "";
if ($dlnaaccess eq "allow") {
print qq|
n<input type=submit name=btn value="| . __('デフォルトを許可→禁止に変更') . qq|">n
nn|;
} else {
print qq|
n<input type=submit name=btn value="| . __('デフォルトを禁止→許可に変更') . qq|">n
n|;
}
print qq|<input type=hidden name=next value="/gate/dlnafilter.cgi">n|;

print "</form>n";
&HDLcgi::page_footer();
goto end_exit;


end_exit:
undef $sys;
exit (0);

}

HDL-GTRX化のための調査

2008年10月13日 23時04分07秒 | HDL-GT
コメントをいただいたようなので、DLNAについて再度調べてみる。
DLNAを有効化する際にキックする起動シェルは
/etc/init.d/dlna であり
# /etc/init.d/dlna start とすれば起動する。
ちなみに、起動シェルを眺めてみれば、configファイルがどこにあるかは一目瞭然。
/mnt/hda5/dmsf/config です。


sh-2.05b# cat /etc/init.d/dlna
#!/bin/sh
#
# chkconfig: 2345 95 5
# description: DiXiM Media Server
#
# $Id: dmsfactrl,v 1.5 2003/08/13 11:13:06 cvs Exp $

# configuration
config=/mnt/hda5/dmsf/config
. "$config"
program_path="$program_home/$program_name"
pid="/var/run/$program_name".pid

ulimit -n 1100
export CHARACTER_ENCODING="UTF8"

[ -x $program_path ] || exit 1

start() {

echo -n "Starting DLNAServer : "
host_name=$(hostname)
echo -n $host_name > $data_home/conf/friendly_name
# Start daemon.
if [ -e $pid ]; then
if [ -e "/proc/"`cat $pid` ]; then
echo "Already Started"
return 1
else
rm -f $pid
fi
fi
$program_path $account $data_home $pid &
echo "[ OK ]"
}

stop() {
# Stop daemon.
echo -n "Shutting down DLNAServer : "
if [ -e $pid ]; then
kill `cat $pid`
sleep 1
killall dmsf >& /dev/null
sleep 1
killall dmsf >& /dev/null
sleep 1
killall dmsf >& /dev/null
sleep 1
killall dmsf >& /dev/null
sleep 1
killall dmsf >& /dev/null
sleep 1
killall dmsf >& /dev/null
sleep 1
killall dmsf >& /dev/null
sleep 1
kill -KILL `cat $pid`
rm -f $pid
echo "[ OK ]"
return 0
else
killall dmsf >& /dev/null
echo "[ OK ]"
return 0
fi
}

restart() {
stop
sleep 1
start
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: "$program" {start|stop|restart}"
exit 1
esac

exit $?

--------------------------------------------
--------------------------------------------

sh-2.05b# cat /mnt/hda5/dmsf/config
program_name="dmsf"
ctrl_name="dmsfctrl"
program_home="/mnt/hda5/$program_name"
data_home="/mnt/hda5/dmsf_data"
init_home="/etc/init.d"
account="root"


HDL-GTR改造手順

2008年06月13日 04時18分09秒 | HDL-GT
HDL-GTの容量拡張をまとめようと言い出したのにも関わらず
すでに1年がたちそうです。

すでに何をどうやったかをまとめるのに腰がすっかり重たくなっていますが
teratermの作業ログを元にまとめていきたいと思います。

尚、この手順を実際に試し、上手く行こうが
上手くまいが責任は負いかねますのでご了承ください。
(まぁ、当たり前ですが自己責任で)


◆ 作業の流れ ◆(確かこんな感じです。)
0. OSが入っている元DISKをコピーしたより容量の大きなHDDを準備
  (HDL-GT1.0からHDL-GT4.0への改造なら250GBのHDDの内容を1TBへコピーしたもの)

1.Telnet可能ファームを適応する

2.システムの環境設定を変更。

3.HDD用のパラメーターを変更する。

4.RAIDの再構築。


◆ 解説 ◆
基本的にHDL-GTシリーズのディスクの処理は作りこまれたシェルを元に動作しているだけにすぎず、
上位のHDDがあれば筐体は何の変更もなしに動きます。(製品仕様として当然ですが)

なので、その辺を利用して、HDL-GTに今格納されているHDDは上位のものなんだと認識させれば、
あとはシステム側で自動的にディスクを最適化してくれます。
HDDのコピーは以前書いたように ddコマンド を利用してください。
もし技術的に不安があるなら、これdo台PRO などを利用してください。


◆ 手順 ◆
0.ディスク構成は下記の通りにすると早く作業が終わると思います。
[1] 元ディスク
[2] 元ディスク
[3] 元ディスク
[4] 元ディスクからコピーした上位HDD

1.#mount -o remount,rw,noatime /
 ファイルシステムの基本的な部分全てがリードオンリーによる保護が掛けられている為、ライト可能な状態にマウントし直します。

2. #cd /var/tmp/
modelファイルが存在する階層に移動します。

sh-2.05b# ls -l
-rw-r--r-- 1 root root 10 Oct 21 20:12 model


3.#vi /var/tmp/model
HDL-GTR2.0 などと書かれているはずですので、
それを変更したいモデルに書き換えます。

HDL-GT2.0 (500GB×4台)
HDL-GT3.0 (750GB×4台)
HDL-GT4.0 (1TB×4台)

HDL-GTR2.0 (500GB×4台)
HDL-GTR3.0 (750GB×4台)
HDL-GTR4.0 (1TB×4台)

このファイルはシステム起動時にHDDに記録されている
「 disklabel_model 」と言う項目を元に吐き出しているファイルであり、
HDDのフォーマット処理の際に参照されています。(…記憶が確かならですが)

『フォーマット前のディスクに書き込まれている内容』
sata1
model WDC WD10EACS-00ZJB0
disklabel_errorcount 0
disklabel_ident SAMSUNG_HD501LJ:S0Z4J1C3P01111
disklabel_magic HDLG
disklabel_port
fs_all 0
identifier _WD10EACS-00ZJB0:WD-WCASJ2345678
fs_used 0
can_spindown 1
capacity_part 972125279
mounted 0
disklabel_usage RAID
enable 1
disklabel_raidmode raid0
smart_status 0
fs_free 0
disklabel_name HDL-GTR
device sda6
disklabel_model HDL-GTR2.0
capacity_whole 1953525168
disklabel_version 0002
filesystem md_partition
disklabel_mindisk 4
spindown 0


『フォーマット後のディスクに書き込まれている内容』
sata1
model WDC WD10EACS-00ZJB0
disklabel_errorcount 0
disklabel_ident _WD10EACS-00ZJB0:WD-WCASJ2345678
disklabel_magic HDLG
disklabel_port
fs_all 0
fs_used 0
identifier _WD10EACS-00ZJB0:WD-WCASJ2345678
can_spindown 1
capacity_part 1949086124
mounted 0
disklabel_usage RAID
enable 1
disklabel_raidmode raid0
fs_free 0
smart_status 0
disklabel_name HDL-GTR
device sdd6
disklabel_model HDL-GTR4.0
capacity_whole 1953525168
disklabel_version 0002
filesystem md_partition
disklabel_mindisk 4
spindown 0


4.ディスク[2],[3],[4]を抜き、まっさらな上位HDDを格納し再構築モードで復旧させます。
※ ここは実績ないのでもしダメなら↓で。

[1] 拡張したHDD
[2] まっさらな上位HDD
[3] まっさらな上位HDD
[4] まっさらな上位HDD

[注意]
たしかHDL-GTが4台目だけ別ディスク扱いできる処理があり、
その部分を利用する形になるんですが、WEB管理画面から
暗号化RAID5と通常RAID5を行ったり来たりさせると「/var/tmp/model」を元に
4台目のHDDだけdisklabel_modelが書き換えられるのです。

私のGTR場合、バカだったのでHDDの4台目の抜いて刺してと
都度暗号化RAID5と通常RAID5を行ったり来たりしながら
ディスク1つずつ4回も繰り返して、disklabel_modelの書き換え処理をしてました。
なので、少しずつ(500GB)容量がUpしていったと言う訳です。

1台できたら、それでブートして再構築モードで復旧させるか、ddコマンドで全部コピーして使えば圧倒的に早かったと後になって思いました。

5.再構築が終わったら、WEB管理画面からボリューム設定を変更し、ディスクの最適化を行います。
※ これをやらないと、パーテーションがリサイズされないはずなので。


以上、記憶を呼び起こしながら、手順化してみました。
不備等あるかと思いますが、その辺はご指摘いただければ修正したいと思います。




◆新品購入なら◆
I-O DATA 高信頼RAID 5対応LAN接続型ハードディスク 1.0TB HDL-GT1.0

アイ・オー・データ

このアイテムの詳細を見る


◆アウトレットで格安購入 ioPLAZA【アイ・オー・データ直販サイト】◆
ioPLAZA【アウトレットわっしょい祭りリターンズ2】

I-O DATA 高信頼RAID 5対応LAN接続型ハードディスク 1.0TB HDL-GT1.0

DLNAプレイヤー その名は PS3@60GB

2007年11月25日 20時45分41秒 | HDL-GT
さて、初代PS以降、ゲームするための機器としては、
Nintendo DSくらいしか持っていない。

プレイしたいゲームがないってのが理由だったりしますが…。
※ そう言えば、ワンダースワンカラーは買ったなぁ…。FF3出るって言ってたから。

で、DLNAプレイヤーが無いのでDLNAが試せなかったりしたんですが、
PS3を購入したことで試すことができそうです。

ただ、個人的にDLNAは必要ない訳で、
じゃあ、なぜPS3を買ったのかと言えば、
BDプレイヤーとしてなのです。

私の持つ BW200 や LF-MB121などのBD再生可能機器では市販のBDタイトル再生できないので。

それはそうと、HDL-GTR2.0の元ディスクがオークションで2台売れた。
たぶんあと1回は確実に出品する予定。

フォーマットして普通に使っても良いんだよなぁ…って思うようになって来てるけど。