パッケージの確認とインストール の基本操作、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 |
最後に、もし個別にインストールしても良いだろうが、
面倒であったり、使いたい機能が無い場合もあるだろうし、
もし機能から全て把握してカスタマイズしたいならば、
自分でコンパイルする方が無難な場合も。
今回のメモはapache2 をapt-get コマンドを用いて、
Debian パッケージのレポジトリから調べて、最新のパッケージを
丸々依存ファイルごとインストールする例でした。
追伸:aptitude コマンドで、パッケージ情報を確認することも出来る様だ。
こっちのコマンドは説明も追加されて理解しやすかった。
aptitude show apache2
Package: apache2
It features support for HTTPS, virtual hosting, CGI, SSI, IPv6, easy scripting |
このコマンドについては、後日追伸として書いたのでApache2 については、
インストールしたのでステータスが
State: installed |
State: not installed
5.3.3-7+squeeze8)
least one of the three server-side versions of the PHP5 interpreter installed. other packages that depend on this one.
PHP5 is a widely-used general-purpose scripting language that is especially |
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 も同様にインストールして設定という
(後日にこのページを編集したので、ほとんど説明になっているので
インストールの説明メモは残さないかもしれません。)
メモ終わり。 お粗末<_ _>
いつもの様に前置きが長いので先に概要を述べておきます。
今回の最終的なテーマ概要
「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 は奥深い。
やっぱりまだ、本当の結論には達していないが、これで超長い考えたときのメモを終わろうと思う。
超お粗末でした<_ _>