忍者ブログ

カウンター

プロモーション

カレンダー

09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


No Image

apt とdpkg (追伸でaptitude)でパッケージのインストールと各種確認

Linux 関連 調べ物

 

パッケージの確認とインストール の基本操作、apache2 を例にメモ。

<追伸で書いた部分>------
結局の所、locale 設定をインストール(apt-get install locales)し、
日本語に表示できる様に設定すれば、
こんなメモは要らないのかもしれないです。

 その場合は、ちゃんと指定した文字コードが表示できるコンソールだのターミナルを使って下さいね、
文字化けしますから。

そうすれば基本的にapkg でdebパッケージをインストールするのであろうと、
aptitude を使おうと、どちらも--help という引数を与えれば、ある程度日本語化された
ヘルプが見られますね^^;

-----追伸以上。-----

☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
指定した言葉を含む、パッケージの一覧を表示する。(dpkg)

dpkg -l | grep apache

長い場合で少しづつ見たい場合はmore にパイプする。
dpkg -l | grep apa | more


長い場合で前後しながら見られる様にしたい場合はless にパイプする。
(終了は[q]キー、移動は、1行[e][i][y][k]、n行[nz][nx]、先頭[g]、最終[G])
dpkg -l | grep apa | less

追伸:
後でも説明が出てきますが、
aptitude show apache2

がとても便利でした・・・

☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
インストールされている場合は、最新にアップデートする。

まず、最新の更新リストの設定にする。
apt-get update

 

次にリストにある全てのapt-get で管理できるパッケージをアップデートする。
apt-get upgrade

☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆

インストールされていない場合は、欲しいパッケージ名を検索してみる。

apt-cache search apache2

 

長い場合で少しずつ見たい場合はmore もしくはless にパイプする。
apt-cache search apache2 | more
apt-cache search apache2 | less

 

apache2 で検索した場合、いっぱい出てくる中で以下の当りを注目する。

      ・・・ (略) ・・・
apache2 - Apache HTTP Server metapackage
apache2-utils - utility programs for webservers
apache2.2-bin - Apache HTTP Server common binary files
apache2.2-common - Apache HTTP Server common files
      ・・・ (略) ・・・

実は、パッケージの名前が明確になった場合は以下のコマンドの方が簡単にリスト化できる。
ただしこちらは、パッケージについて説明が無い。

apt-cache pkgnames apache2

結果はこうなる。

apache2-suexec-custom
apache2-utils
apache2-mpm-itk
apache2.2-bin
apache2-mpm-prefork
apache2
apache2-threaded-dev
apache2.2-common
apache2-suexec
apache2-dbg
apache2-doc
apache2-mpm-worker
apache2-mpm-event
apache2-prefork-dev

☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
依存関係を確認し、インストールしたいパッケージ内容を明確にする。

apt-cache depends apache2

 

この様に表示される

apache2
 |Depends: apache2-mpm-worker
 |Depends: apache2-mpm-prefork
 |Depends: apache2-mpm-event
  Depends: apache2-mpm-itk
  Depends: apache2.2-common

しかし、apache2 の場合、大本を指定しないとこうなる様だ。
例えばapache2.2-common だと

apt-cache depends apache2.2-common

この様に、インストールするとどうなるかが表示される。

apache2.2-common
  Depends: apache2.2-bin
  Depends: apache2-utils
  Depends: libmagic1
  Depends: mime-support
  Depends: lsb-base
  Depends: procps
  Depends: perl
  Suggests: <www-browser>
    conkeror
    edbrowse
    elinks-lite
    elvis-console
    lynx-cur
    uzbl
    chimera2
    chromium-browser
    elinks
    elvis
    epiphany-browser
    galeon
    iceape-browser
    iceweasel
    kazehakase
    konqueror
    links
    links2
    midori
    netrik
    rekonq
    xemacs21-mule
    xemacs21-mule-canna-wnn
    xemacs21-nomule
    w3m
  Suggests: apache2-doc
 |Suggests: apache2-suexec
    apache2-suexec-custom
  Suggests: apache2-suexec-custom
  Recommends: ssl-cert
  Conflicts: <apache>
  Conflicts: <apache2-common>
  Replaces: <apache2-common>

Depends: 同時にインストールされる他のパッケージ。
    つまり同時に導入される、他の依存パッケージ。
Suggests: インストールした方が利便性がよい他の薦めパッケージ。
Recommends: インストールを推奨するパッケージ。
Conflicts: 競合するのでインストールすると消されるパッケージ。
Replaces: 競合など、何らかの理由で再配置、
    再インストールされるパッケージ。

他のパッケージも含むパッケージは、Depends: でインストールされるが、
Suggests: Recommends: は表示されるだけで任意である。
Conflicts: はインストールすると強制的に消され、依存関係を再構成し、
再びインストールされるのがReplaces: である。

 

もうひとつ、自身のパッケージ内で他の
パッケージ名として依存関係も確認出来る様だ。
apt-cache rdepends apache2

 

こちらの方は、どの機能が何を使っているのかを知る為には良い、
しかし単純にパッケージとしてみるには情報量が多い。
以下はphp関連で目にとまった一例。

       ・・・ (略) ・・・
 |phpsysinfo
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
 |phppgadmin
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
 |phpmyadmin
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
 |phpldapadmin
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
 |phpbb3
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
      ・・・ (略) ・・・
 |htcheck-php
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
      ・・・ (略) ・・・

結局、apache2 という物をインストールすると
それに関連する依存しているパッケージもインストールされることが分かる。

 

また、関連しているパッケージが、また他に関係しているパッケージがあるか、
一応見てみた。

apt-cache depends phpsysinfo

 

一つ例として、phpsysinfo について見てみた、php5 本体と関係があるのがわかる。

phpsysinfo
 |Depends: apache2
    apache2-mpm-itk
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
  Depends: <httpd>
    apache2-mpm-itk
    bozohttpd
    monkey
    tntnet
    aolserver4-core
    aolserver4-daemon
    apache2-mpm-event
    apache2-mpm-prefork
    apache2-mpm-worker
    boa
    cherokee
    dhttpd
    ebhttpd
    lighttpd
    mathopd
    micro-httpd
    mini-httpd
    nginx
    ocsigen
    thttpd
    webfs
    yaws
  Depends: php5
  Suggests: lm-sensors
  Suggests: hddtemp

最後に、もし個別にインストールしても良いだろうが、

面倒であったり、使いたい機能が無い場合もあるだろうし、
もし機能から全て把握してカスタマイズしたいならば、
自分でコンパイルする方が無難な場合も。

今回のメモはapache2 をapt-get コマンドを用いて、
Debian パッケージのレポジトリから調べて、最新のパッケージを
丸々依存ファイルごとインストールする例でした。


追伸:aptitude コマンドで、パッケージ情報を確認することも出来る様だ。
こっちのコマンドは説明も追加されて理解しやすかった。
aptitude show apache2

Package: apache2
State: installed
Automatically installed: no
Version: 2.2.16-6+squeeze7
Priority: optional
Section: net
Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.x伏せx>
Uncompressed Size: 36.9 k
Depends: apache2-mpm-worker (= 2.2.16-6+squeeze7) | apache2-mpm-prefork (=
         2.2.16-6+squeeze7) | apache2-mpm-event (= 2.2.16-6+squeeze7) |
         apache2-mpm-itk (= 2.2.16-6+squeeze7), apache2.2-common (=
         2.2.16-6+squeeze7)
Provided by: apache2-mpm-event, apache2-mpm-itk, apache2-mpm-prefork,
             apache2-mpm-worker
Description: Apache HTTP Server metapackage
 The Apache Software Foundation's goal is to build a secure, efficient and
 extensible HTTP server as standards-compliant open source software. The result
 has long been the number one web server on the Internet.

 It features support for HTTPS, virtual hosting, CGI, SSI, IPv6, easy scripting
 and database integration, request/response filtering, many flexible
 authentication schemes, and more.
Homepage: http://httpd.apache.org/

このコマンドについては、後日追伸として書いたのでApache2 については、
インストールしたのでステータスが

 State: installed

となっていたので、一応インストールされていない
同様にphp5 についても確認してみた。
 

State: not installed
Version: 5.3.3-7+squeeze8
Priority: optional
Section: web
Maintainer: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.x伏せx>
Uncompressed Size: 20.5 k
Depends: libapache2-mod-php5 (>= 5.3.3-7+squeeze8) | libapache2-mod-php5filter
         (>= 5.3.3-7+squeeze8) | php5-cgi (>= 5.3.3-7+squeeze8), php5-common (>=

         5.3.3-7+squeeze8)
Description: server-side, HTML-embedded scripting language (metapackage)
 This package is a metapackage that, when installed, guarantees that you have at

 least one of the three server-side versions of the PHP5 interpreter installed.
 Removing this package won't remove PHP5 from your system, however it may remove

 other packages that depend on this one.

 PHP5 is a widely-used general-purpose scripting language that is especially
 suited for Web development and can be embedded into HTML. The goal of the
 language is to allow web developers to write dynamically generated pages
 quickly. This version of PHP5 was built with the Suhosin patch.
Homepage: http://www.php.net/


ステータス情報は、

State: not installed

となって、インストールされていないことがわかる。

 

☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
インストールしたいパッケージ内容が明確にわかったら、インストールしてみる。

apt-get install apache2

 

するとこんな感じになる。

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
Suggested packages:
  apache2-doc apache2-suexec apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common
  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 2079 kB of archives.
After this operation, 6918 kB of additional disk space will be used.
Do you want to continue [Y/n]?

The following extra packages will be installed: 拡張パッケージ
Suggested packages: お勧め提案パッケージ
The following NEW packages will be installed:
               インストールされる新しいパッケージ

インストールを継続していいか聞いてくるので継続する(Y)

Get:1 http://security.debian.org/ squeeze/updates/main apache2.2-bin armel 2.2.16-6+squeeze7 [1357 kB]
Get:2 http://ftp.jp.debian.org/debian/ squeeze/main libapr1 armel 1.4.2-6+squeeze3 [90.2 kB]
Get:3 http://ftp.jp.debian.org/debian/ squeeze/main libaprutil1 armel 1.3.9+dfsg-5 [83.9 kB]
Get:4 http://ftp.jp.debian.org/debian/ squeeze/main libaprutil1-dbd-sqlite3 armel 1.3.9+dfsg-5 [27.5 kB]
Get:5 http://ftp.jp.debian.org/debian/ squeeze/main libaprutil1-ldap armel 1.3.9+dfsg-5 [25.4 kB]
Get:6 http://ftp.jp.debian.org/debian/ squeeze/main ssl-cert all 1.0.28 [14.8 kB]
Get:7 http://security.debian.org/ squeeze/updates/main apache2-utils armel 2.2.16-6+squeeze7 [170 kB]
Get:8 http://security.debian.org/ squeeze/updates/main apache2.2-common armel 2.2.16-6+squeeze7 [307 kB]
Get:9 http://security.debian.org/ squeeze/updates/main apache2-mpm-worker armel 2.2.16-6+squeeze7 [2246 B]
Get:10 http://security.debian.org/ squeeze/updates/main apache2 armel 2.2.16-6+squeeze7 [1396 B]
Fetched 2079 kB in 10s (196 kB/s)
Preconfiguring packages ...
Selecting previously deselected package libapr1.
(Reading database ... 19480 files and directories currently installed.)
Unpacking libapr1 (from .../libapr1_1.4.2-6+squeeze3_armel.deb) ...
Selecting previously deselected package libaprutil1.
Unpacking libaprutil1 (from .../libaprutil1_1.3.9+dfsg-5_armel.deb) ...
Selecting previously deselected package libaprutil1-dbd-sqlite3.
Unpacking libaprutil1-dbd-sqlite3 (from .../libaprutil1-dbd-sqlite3_1.3.9+dfsg-5_armel.deb) ...
Selecting previously deselected package libaprutil1-ldap.
Unpacking libaprutil1-ldap (from .../libaprutil1-ldap_1.3.9+dfsg-5_armel.deb) ...
Selecting previously deselected package apache2.2-bin.
Unpacking apache2.2-bin (from .../apache2.2-bin_2.2.16-6+squeeze7_armel.deb) ...
Selecting previously deselected package apache2-utils.
Unpacking apache2-utils (from .../apache2-utils_2.2.16-6+squeeze7_armel.deb) ...
Selecting previously deselected package apache2.2-common.
Unpacking apache2.2-common (from .../apache2.2-common_2.2.16-6+squeeze7_armel.deb) ...
Selecting previously deselected package apache2-mpm-worker.
Unpacking apache2-mpm-worker (from .../apache2-mpm-worker_2.2.16-6+squeeze7_armel.deb) ...
Selecting previously deselected package apache2.
Unpacking apache2 (from .../apache2_2.2.16-6+squeeze7_armel.deb) ...
Selecting previously deselected package ssl-cert.
Unpacking ssl-cert (from .../ssl-cert_1.0.28_all.deb) ...
Processing triggers for man-db ...
Setting up libapr1 (1.4.2-6+squeeze3) ...
Setting up libaprutil1 (1.3.9+dfsg-5) ...
Setting up libaprutil1-dbd-sqlite3 (1.3.9+dfsg-5) ...
Setting up libaprutil1-ldap (1.3.9+dfsg-5) ...
Setting up apache2.2-bin (2.2.16-6+squeeze7) ...
Setting up apache2-utils (2.2.16-6+squeeze7) ...
Setting up apache2.2-common (2.2.16-6+squeeze7) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Enabling module reqtimeout.
Setting up apache2-mpm-worker (2.2.16-6+squeeze7) ...
Starting web server: apache2.
Setting up apache2 (2.2.16-6+squeeze7) ...
Setting up ssl-cert (1.0.28) ...

これでインストール終了。
☆  ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
一番初めに書いたメモと同様のコマンドで、インストールされたか確認してみる。

dpkg -l | grep apache | more

するとインストールされているのが分かる。(文が長いので折り返しています)
ii というのは、インストールされた印の様だ。

ii  apache2                               2.2.16-6+squeeze7
            Apache HTTP Server metapackage
ii  apache2-mpm-worker                    2.2.16-6+squeeze7
            Apache HTTP Server - high speed threaded model
ii  apache2-utils                         2.2.16-6+squeeze7
            utility programs for webservers
ii  apache2.2-bin                         2.2.16-6+squeeze7
            Apache HTTP Server common binary files
ii  apache2.2-common                      2.2.16-6+squeeze7
            Apache HTTP Server common files

指定したパッケージと、その依存に当たるパッケージがインストールされた。
これでインストールは終わり。

次回はDebian でのApache2 の設定に移る・・・と思ったが、
・・・その前にPHP5 も同様にインストールして設定という
ことにします。
(後日にこのページを編集したので、ほとんど説明になっているので
インストールの説明メモは残さないかもしれません。)

メモ終わり。 お粗末<_ _>

拍手[0回]

PR

No Image

fdisk コマンドのdoes not end on cylinder boundary. って何なの?

Linux 関連 調べ物

いつもの様に前置きが長いので先に概要を述べておきます。

今回の最終的なテーマ概要
Linux のfdisk コマンド先生does not end on cylinder boundary.とおっしゃいますが
 先生もっと具体的に教えて下さいよ! え? 調べろって事ですか???」
と言うことです^w^;

具体性を持たせて軽く説明すれば、fdisk コマンド先生は言ってくるんです!w
(黒箱PRO にDebian squeeze のインストーラーによるパーティショニングの例です)
root@debian:/# fdisk -l

Disk /dev/sda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000ac41

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              32        4820    38462464   83  Linux
/dev/sda3            4820        4866      368641    5  Extended
/dev/sda5            4820        4866      368640   82  Linux swap / Solaris

多分・・・シリンダでStart とEndの合致した所がマズイ!のだと思いますので、
上記について調べます^w^;

では長ぁーーーい前置き

ちょっとまった! その前に断っておきます。
前回のブログで黒箱PRO のTFTPブートによるインストールが成功したので次回のブログで述べます!って
書きましたが、こっちが気になってしょうがないので、こっちの話題からにします^^;

では長い前置きをどうぞ>w<;

超、常識的な技術っては、知らない間に使っていて、誰かに尋ねるのが恥ずかしいくらいではあるが、
その技術に依存して色々な物事に使っている場合があると思う。(独り言だと思って流してくれてもいい^^;)

例えば、オペレーティングシステム(OS)で平気な顔をしてハードディスクやSSDを使っているが、
それがうまく動かなくて困ると言うことは、なかなか無くて、いやむしろ、なかなか無いのではなく、
オペレーションとしてOSがエラー様の処理をしてくれるので、あまり気にしなくて良いことが多い。

だから複雑な作りをしているハズのハードディスクの技術的な事柄で躓くことなんて、
これまで少なかった、いやWindows という名のOS を使っている分に、
常日頃気にしなかった、多分、超効率を求めたりしなければ、気にしなくて良いのが
Windows というOSの設計なんだろうと思う。

しかしLinux を使い出すと、その複雑だという事柄すら、出来るだけ自分で噛み砕いて、
その複雑であろう根本から自由に指定して使おう!と言うのがLinux というOSだと思う。(UNIXね)

最近はPC上にLinux を入れたりしても、何も気にせずに使っていたが、
いざCUI環境だけで動かしたい!と思って黒箱RPO(ARMプロセッサ)に、
Linux を入れだして、些細な警告に悩んで思った。

今まで当たり前として使っていた事柄が、やはり凄い技術の上で動いていたと、
実感されることはとても多い。

しかし、考えているということは、そんなに前向きなことばかりでもないが、
やはり気になるか気にならないかで戻ってみたりして、結局考えたりして、
調べてみたりしている。

つまり、知ったからってどうってことでもないかもしれない、
しかし知ることを選んだなら知るべきだし、何度も考えるなら知る術を避けて通れないなら、
またもしくは、知らなければいけない何かを感じたり、
はたまた、知ることが苦でないならやってみたいと思ったり、
やっっぱり面倒だな・・・・ とか考えたり気苦労もして、色々人生観が決まるのが人間か?w
とかまで考えていることもあるだろう・・・・?(何の話だっけ・・・w)

そこでやっぱり忘れない程度にブログにでもその事柄を残そうと思った。
(結構複雑に単純な事を追求した、もしくは、単純なことを複雑に考えた?)

今回、なんだかやはり、考えないといけないと思ったことは、
Linux のコマンド、fdisk だった。その経緯を述べる。

単純に一言で言えば「Linux コマンドの fdisk のパーティションの状態出力の警告が気になって仕方ない!」
だけなんですが、突っ込みは如何様にでもどうぞ!?w

では具体的に、黒箱PRO へarmel Debian であるsquuze(Debian6系)をウィザードで入れると、
少々気がかりな現象がどうしても起こる、これは何度インストールし直しても、
やはり起こる、結局4度は色々やってみたが、どうしても起こるんです。(そんなに連続して入れ直すな!って?w)

それは、fdisk でマウントしているディスクを見ると、
「does not end on cylinder boundary.」と出て、パーティションとパーティション間で、
シリンダーをまたいだ読み書きが発生していると警告される。

つまりこれはどういう警告なのか? 気にするべきことなのか???
結局はハードディスクの作りの理解をどうしても必要とし、
物事を噛み砕くのを目的としてブログに載せようと思ったので、
基本的なハードディスクの説明を調べて述べてみる。

何か他のサイトでは、書き込みの仕組みと、書き込みの単位の事柄、
説明の順序が一緒で分かりにくく思えたので、自分で極力分けて
くどいくらい噛み砕いて書いてみた。

   ○○○ハードディスクの機械的な機構表現○○○

1.円盤があり、これをプラッタと言う。
2.プラッタは両面に記憶領域を物理的にもっている、つまり両面が記録面である。
3.記憶領域を読み書きする為にヘッダという読み書き装置がついている。
4.ヘッダはプラッタの面に対して水平に往復移動運動をして記録領域を決める、
 この移動動作をシークという。
5.ハードディスク内部のプラッタは1枚とは限らず、プラッタは複数枚あるのが一般的。
6.プラッタは同じ回転するプラッタの軸に固定されている為、同一回転角、同一回転数で回っている。
7.プラッタの両面それぞれ記録面を持つ為、プラッタの両面にヘッダがある。
8.複数のプラッタがあれば、複数のヘッダがあるが、全てプラッタ上のヘッダは、
 同一の1つのヘッダの軸を元に固定され全て同じ動きをする。
9.プラッタはプラッタごと連動、ヘッダはヘッダごと連動して動く事から、
 一回のシークで読み書きできる記録面は、ヘッドの数だけ増える事になる。
10. 9.の同時に記録できる場所の数を、プラッタに対するヘッダの往復連動を、
 エンジンのシリンダに見立てた意味合いで、シリンダと言う単位を用いて表現する。


   ○○○ハードディスクの論理的な記録表現○○○

11.ヘッダがプラッタに対して書き込む1つの領域は、セクタと呼ばれる、
 1セクタは512バイトとされるのがセオリーだ。
12.ヘッダはプラッタに対して移動するが、プラッタは回転しているので、
 円盤を円を描く様に読み書きすることになる、この部分は一直線の円となり、
 トラックと呼ばれる、陸上系の競技場のトラックと同一な意味合いで考えれば分かり易い。
13.一度トラックにシークした後、わざわざ再度シークさせて他のトラックに
 分散させて再度シークするのには時間の無駄がある、一度シークすれば、そのトラックに
 連続して書き込めば書き込みスピードも速く、整列したデータが取り扱える。
14.13.でいう連続したトラックに書き込む大きさをクラスタと呼び、
 そのクラスタの大きさはファイルシステムの形式などで選べたり依存する。


   ○○○ハードディスクの総合的な書き込みの時間と書き込みの効率化○○○

15.複数のプラッタに対して1度のシークで、それぞれのプラッタに、
 同一の1つまとまった情報を、ヘッダの数だけ分散して情報を書き込めば、
 高速化に繋がる。
16.逆に言えば、シリンダーとして見立てているのに、個々のプラッタ上の
 ヘッダが、別々の情報に対して読み書きをしていると、1つの情報に対して読み込む為に
 シークをしても、他の場所にまたシークして続きを読み込まなければいけない事が増える、
 つまり1度に書き込める量が増える使い方をするのならば、同じ情報に対して書き込むべきだ。
17.クラスタの大きさが変えられる場合、クラスタのサイズを大きくして、
 クラスタのサイズよりも小さな情報を沢山扱うとディスクの無駄が大きい。
18.クラスタの大きさが変えられる場合、クラスタのサイズを小さくすると、
 記憶領域を純粋に読み書きしたい領域以外に、プラッタの管理領域として
 記憶領域を使ってしまうので効率が悪い。

前置き終わりかな・・・

さて、やっと・・・・・・・・話は戻り、黒箱PRO(でなくてもいいかもしれないけど)のLinux で
fdisk がとやかく警告を言ってくる件は、多分、
「インストールウィザードのパーティションの区切り方が、シリンダ単位でなく、要領単位で区切ってしまう」
という厄介な方法を取っているからだと予想します(と先に述べる)。

つまり、上記のハードディスクの仕組みから読み解けば、
同一シリンダの読み書きの最中に、他のパーティションをまたぐと、効率が悪くなると、
それが多分fdisk コマンド先生はおっしゃっているんだと思う(と先に述べる)。


一応、パーティショニングを黒箱PRO のNAND(256M)のBusyBoxのfdisk コマンドによって、
手動で区切りなおした。インストールはまだだから、そのパーティショニングをLinux が
使ってくれる?のかは分からないけど、多分大丈夫??だと思う。
もしかすると、インストーラーに向けた設定も必要になるのかまでは、調べていない。



~ # fdisk /dev/sda

The number of cylinders for this disk is set to 38166.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-38166, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-38166, default 38166): 245

Command (m for help): a
Partition number (1-4): 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (246-38166, default 246):
Using default value 246
Last cylinder or +size or +sizeM or +sizeK (246-38166, default 38166): 37784

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 3
First cylinder (37785-38166, default 37785):
Using default value 37785
Last cylinder or +size or +sizeM or +sizeK (37785-38166, default 38166):
Using default value 38166

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (37785-38166, default 37785):
Using default value 37785
Last cylinder or +size or +sizeM or +sizeK (37785-38166, default 38166):
Using default value 38166

Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap)

Command (m for help): p

Disk /dev/sda: 40.0 GB, 40020664320 bytes
64 heads, 32 sectors/track, 38166 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *           1         245      250864   83  Linux
/dev/sda2             246       37784    38439936   83  Linux
/dev/sda3           37785       38166      391168    5  Extended
/dev/sda5           37785       38166      391152   82  Linux swap

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
SCSI device sda: 78165360 512-byte hdwr sectors (40021 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 < sda5 >
SCSI device sda: 78165360 512-byte hdwr sectors (40021 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3 < sda5 >
Syncing disks.
~ #

結局、赤色で表示した、シリンダのEND とSTART の合致
手動で値をずらして回避してみた。 これがやってみた回避策でした・・・


ちょっと余談

念のために述べておくが、これは私のハードディスク(SSDだけど)を元に計算した値を使っているので、
自身のハードディスクの値は、
自分のディスクの1つのシリンダの値 x 指定したスタートとエンドのシリンダの大きさ x 512バイトで出せるので、
例えば私のSSDは、1つのシリンダの値が2048と私のブログにある通り表示されるので、
400Mバイト付近のスワップファイルを作ろうと思った場合、
400,000,000 ÷ 2048 ÷ 512 とすれば、381.1469・・・みたいになる。

(私は100円電卓を使って計算したので、100円電卓だと 表示が8ケタなので^^;
40,000,000 ÷ 2048 ÷ 512 として出た値、38.11469・・・を10倍している)

計算してみると、スタートとエンドのシリンダの差が381付近が400Mあることが分かると思う。
私の場合、なんとなく容量が大きいディスクだし、表示で400Mを切っているのはなんだかなぁ?って思ったので
切り上げて382にして計算しました。

さてここで問題、私の場合の400M以上にしたい場合の実際にパーティションの値は、
数値の都合上、エンドのシリンダー - スタートのシリンダー +1 = 382 である。

なぜかって?
それはスタートの値が0 で計算した場合、1がエンドだと、1シリンダー使った計算になる・・・?
ハズレ!!!
0がスタートで1で終わりは、0と1の2シリンダー分、つまり2シリンダー使った計算になるから。
数のマジックなので、引き算をするとスタート地点のシリンダーは排除してしまうので+1した値が実際の値です!!!
気をつけて。


た、かなり話は変わります。

fdisk で赤字に下線で書いた部分、なぜか当初はヘッドの数が255でしたが、
後から64になっているのです・・・

これじゃ全く別物のSSDじゃないですか・・・・
私が意としていないのに、SSDがなのか、OSがなのか、
勝手に仮想化した内部構造を変えてしまっています!!!
計算も確かに合ってそうですが、だけどなんか・・・変な気分です。
結構問題あるんじゃないかと思います、パーティション区切った後のログとか、
他のソフトウェアが記憶して値を流用していたとすれば、
途中で値が変わると、ファイルシステム情報が崩壊している様に見えるかもしれないです・・・よね?!

理由が分からないですが、SSDの扱いが内部的に変わることなんてあるのでしょうか???
LBAで仮想化されているし、私の場合はSSDなのでヘッドの数とかそういう問題はむしろ無いはずですが、
かなり気持ちが悪いです。

SSDの構造をハードディスクと見立てた時に、メーカー独自にメモリアクセスを
並列化させて高速化していたりすると、実際には話しは変わるでしょうが、
レガシーな規格に対して逆行までして物理的に同一にわざわざ見せなくても
十分に電気的な溶媒に置き換わっただけでシリンダの考えは問題視しなくても
良い気もします・・・

正直、パーティションとパーティション間で、シリンダがかぶっている様に見えているのは、
SSD ではどうでもいいことかもしれない。

けど思ったのは、良く考えたら、クラスタの大きさはファイルシステム形式で依存しているから、
ファイルシステムがディスクの作りを考慮して読み書きの単位をシリンダや、クラスタ単位を
意識している読み書きならば、シリンダをまたぐパーティションは、ディスクIOの同時アクセスの手数や、
ディスクアクセスによるロックや、シークタイムのウェイトなどで、
何処かで微妙に良いことが無いんじゃないかな?って思えた。

SSDだからといって、ファイルシステムにアクセス方法がゆだねられている以上、
シリンダをまたぐファイルシステムは余り宜しくないと思えて仕方ない。

つまり、少し言い換えると、きっちりとファイルシステムとクラスタは依存していると言えるので、
SSDだからシリンダとは関係しないよ、だからシリンダ内でパーティションを
またぐ使い方をしていても大丈夫だよ?なんていうのはどうも
嘘になることもあるんじゃないかなって予想した。


やっぱり出来れば、きれいにシリンダーをまたがないパーティションを切るべきだと思った。

Linux の設定でいつも困らないのは、本当の意味の解決を探したいからこそ、
その答えは、どのLinux 環境でも依存しない共通設定方法
見つけることかもしれないと思った。

Linux は奥深い。 
やっぱりまだ、本当の結論には達していないが、これで超長い考えたときのメモを終わろうと思う。

お粗末でした<_ _>

拍手[1回]


No Image

Synaptic って?リポジトリとかの管理と関係してるの?

Linux 関連 調べ物

個人的なメモです。

パッケージマネージャは、パッケージをどうやって管理しているのだろうか?
なぜインストールできるのか???

これ凄い純粋で単純な疑問。

これを知れば、多くが知れるんじゃないか?と思った。

前回Eclipse を調べているときに、Eclipse の何処かのサイトで
http://anonscm.debian.org/gitweb/?p=pkg-java/eclipse.git;a=blob_plain;f=debian/control
こんなのをみつけた。

これって何だろう???
ネット上で調べてみた。

とりあえず、気になったのは、「git」と言う言葉、そこから数箇所拾ってみた。

●15分でわかるGit入門
正直、5分かからなかった、概要がかかれているのだと分かったので、すぐに読めた。

●分散バージョン管理システムGitの使い方入門
なにやらこちら、しっかり書いてある。

●Git入門
こちらはWiki形式、まだしっかり見ていないがリンクがあった。

これらを見ていてわかったが、Git自体がリポジトリを使ってパッケージを管理する仕組みだと把握。

Eclipse の本家からGit でのソース管理の集まりだと把握した、以下はその全て。
http://anonscm.debian.org/gitweb/
かなり重い(長い)ので開くのは注意。

もしかしてSynaptic もGit なのだろうか???

良く分からないので、とりあえずメモ。

私は何が知りたいか? どうやって管理しているかの実際が知りたい、
たとえば管理する仕組みが書かれていたファイルを見つけたとして、
それをどうやって見るかの大まかな概要が知りたい。

多分それが分かれば、何も怖いものは無い。
たしかプロパティでパスはいっぱい出てくるのは見たし、パスが表示されるのは
便利だと思ったが、無駄に多すぎるとも思った、何を表しているのか、
やはりまだ分かりにくい。

ここでまたメモ、調べたという、なんとなくのメモ、深い意味は無い。

☆Git のツール本家



また、色々調べていてわかったこと、Synaptic はバックグラウンドでaptを使ってパッケージの取得をしている。
なのでAPTを調べたら、CUIで動作するフロントエンドとしてaptitudeがあるらしい。

大体何処を調べながら何をしたら、Web上や、実際のディレクトリ上にどんな事柄が
載っているのかは、大体イメージが付いた。

APTの挙動を探れば見つかりそうだ。



前回からほぼ数時間でブログに書き込んだので、今日はこれくらいにしよう。




また、追伸だが、Eclipse は、2つのGUIバージョンが存在するらしい。

・Motif(モチーフ)は、X Window Systemでの操作手順、見栄え(ルック・アンド・フィール)などを
統一しようというグラフィカルユーザインタフェース (GUI) 規格。

・GTK+ (The GIMP Toolkit) は、クロスプラットフォームウィジェット・ツールキット(GUIツールキット)

らしいが、Eclipse はJava で動くので、Java の実装が元であると思えるので、
Java のGUIがそのMotif やらGTK を使って呼び出されるのかなと想像。


ライブラリが動かない場合は、依存関係なども、良く知らないと動かない場合に理解しにくいなと
思った。






以上個人的なメモ。






拍手[0回]


  • Home
[PR]