2008年10月21日火曜日

partedでパーティションを確保する

3TB近くの領域をRaidで作成したので、使用するためにfdiskではなく、partedで領域を確保する。
まずは確保する領域のデバイスを特定。取り敢えず/devを覗いてみると、sdbがあるので、多分これ(大丈夫かそんなので)。
取り敢えずroot権限になってからpartedを起動。書式はparted [デバイス]

parted /dev/sdb

プロンプトが(parted)に変わり、helpと打てばヘルプが見られるようになる。
で、領域を確保。

mkpartをタイプ。以下ログ
----------------------------------------------------------------
(parted) mkpart
パーティションの名前? []? cmp2disk
ファイルシステムの種類? [ext2]? ext3
開始? 0
終了? -0
(parted) print

モデル: AMCC 9650SE-8LP DISK (scsi)
ディスク /dev/sdb: 2946GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt

番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 17.4kB 2946GB 2946GB cmp2disk

(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

[root@memb ~]#

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

mkpart時、開始と終了を入力する際、開始ポイント、終了ポイントが分からなかった場合はprintと入力すると教えてくれる。
また、サイズを指定する際、特に終端を指定したい場合、負数で指定することによって、終端からのオフセットで入力できる。
(だから上のログだと終端が-0になってる)。


----------------------------------------------------------------
2chのくだらねえ質問はここに書き込め!part156
http://pc11.2ch.net/test/read.cgi/linux/1195106840/
の以下のログより。

232 :login:Penguin:2007/11/19(月) 02:01:27 ID:ZEkXCMCs
fdiskでは2TB以上のパーティションが切れないそうなので、partedというのを使ってみたのですが
サイズを終端まで指定する方法はありますか?mkpartの書式は
「mkpart パーティションタイプ ファイルシステム 開始位置(MByte) 終了位置(MByte)」
ですが、終了位置を自分で指定しないと駄目みたいなんです・・・

あと、partedが扱えるファイルシステムは今のところext2, ext3, linux-swap, FATなど
しかありませんが今後増えていくのでしょうか?
(fdiskがgptを扱えるようになればいいのですが)

233 :login:Penguin:2007/11/19(月) 02:11:50 ID:cXDR4E9v
負数で指定すれば末端からのオフセット
例 -1s

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

間違えたら、rm [番号]で外套パーティションを削除できる。パーティション番号はnumberで調べる。
例:rm 1

mkpartfsならば、ファイルシステムも作ってくれるらしいが、現在未実装らしく、ファイルシステム確保はやってくれない。
よってquitで抜けた後、mkfs.ext3でファイルシステムを作成。


[root@memb ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
359661568 inodes, 719303671 blocks
35965183 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
21952 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
done

This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

手軽。

後はマウントするなりで。
恒久的にマウントする場合、/etc/fstabに記述。


参考リンク
partedについて
http://nigou25.blog.so-net.ne.jp/parted_on_redhat

fstabの記述は以下を参考に。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/756fstabnum.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/756fstabnum.html

2008年10月8日水曜日

久し振りにpythonに触った/インスタントハッキング編

暫くぶりにpythonをいじる。
本気でやらないと・・・。
とりあえず、いろいろ忘れていたので、インスタントハッキング http://www.python.jp/Zope/intro/instant_hacking_jp から復習。
練習問題を解く。

#=----------------------------------
#練習1
#ユーザーから続けて数字の入力を受け付け、合計が100に近付くまでその数字を足し続けるプログラム
#結局100に近づけようとするプログラムだと、100になるしかないんじゃないかという(100を超えると「近くなくなる」)ことを考えてしまい、合計が100になるまで足すプログラムになってしまった。
#多分正解は、限りなく100に近づけようとする(100を超えず、100にならない)数字を繰り出すものだと思うけど、ここでの設問が意図する効果を以下で上げられているはずなので、このまま。


#usernumに数値を入れて貰う
usernum = input("ikutsu?=")
#100を超えた数値だと入れ直し
while usernum > 100:
usernum = input("fuck.onemore")
#100になるまでusernum2に入力を続ける
while usernum < 100:
print "ima",usernum
usernum2=input("more=")
usernum = usernum+usernum2
#100超えるとまずいので、まずいです処理
if usernum > 100:
usernum = usernum-usernum2
print"koeta"
#一件落着
print "100."

#------------------------------------
#ユーザーから100個の数字を受け付け合計を表示するプログラム
#while文で書けると思うけど、意図しているのがfor文のようだったので、for文で。countsをもてあましてる感ありありです。


#はまったところは、合計値「sums」を初期化(0にする)し忘れたこと。
sums = 0
#rangeは1,100と書くと、99までしかカウントしてくれないので101と記述。
for counts in range (1,101):
sums2 = input("number=")
print "ima",counts,"kai"
#sumsとsums2をsumsに代入して、それを100回繰り返す。
sums = sums + sums2
print "goukei",sums

#-------------------------------------
#ユークリッドの互除法によって2個の数の最大公約数を求める関数を書きなさい
#inputで書いてしまってから、「何故これを関数でやるのか」さっぱり分からなかったけど、要は大きなプログラムになるとこういう省力化をしていかないとたちいかなくなるよと言いたいんだろう。


def kouyaku(a,b):
#inputで書いた名残
# a = input("how number is a = ?")
# b = input("how number is b = ?")
#aはbより大きいのが条件なので、その条件を満たさせる
while a <= b:
b = input("NO,its huge.=")
#bが0じゃ無いときは以下を繰り返す(0になれば終わりだから)
while b != 0:
b,a = a%b,b
return a

#example(テスト)
print kouyaku(196,24)

#------------------------------------------

#以下、ごみ。
#雑記も役に立つかもしれないと。

print "PART 1","hello world"
print "hello world"
print "goodbye, world"

#-----------------------

print "PART 2","The Area of Rectangle"
#tate X yoko
tate=10 #width
yoko=20 #height
print tate*yoko

#-----------------------

print "PART 3","RADIUSxRADIUSx3.14"
radius = 30
print radius**2*3.14

#-----------------------

print "PRT4 input"
radius = input("radius?=")
print radius**2*3.14

print "PART5 whats foobar"
foo = input
bar = foo("what is bar?")
print bar

#------------------------

#tempera
tempe = input("whats temp?")
if tempe > 50:
print "cooked"
else:
print "more"


#-------------------------
#shikaku ka maru ka no menseki keisan

#display
print "select it"
print "1 shikaku"
print "2 maru"

#input
docchi = input("doreyo?")

if docchi == 1:
tate=1
yoko=5
area=tate*yoko
print area
elif docchi == 2:
radius=input("radiusplease")
area=3.14*(radius**2)
print area
else:
print
print "die"
print

#----------------------------
for nanika in "a","b","c":
print "fuck",nanika

for counts in range(1,100):
print counts,"of death"
print 100-counts,"of death"

#----------------------------
#from XXXXXX import XXXXX
from time import sleep
waitsec = input("do you wait a sec?")
sleep(waitsec)
print "you wait" ,waitsec ,"SEC,"


#----------------------------
#while no tsukaikata

from time import sleep

print "this program wait 3sec and question"

slept=2
sleep(slept)

ans=input("how many past time?")

while ans != slept:
print "huh?"
slept=slept+3
sleep(slept)
ans=input("how many past time huh?")

print"okey"

2008年10月3日金曜日

Why do you love me?

人と関わりを持つ場合、その人に対して何らかの期待値が存在する。
期待値の存在しない人間のことを他人と言い、期待値が高くなれば、親友や恋人と言うことになるのだろう。
こと仕事に関しては、その期待値の現れ方は分かりやすい。
仕事の質が期待値に直結する。期待値が分かりやすいので、大概が楽な関係である。安直な期待値を満たし続けられればそれでいいのだ。

これが親友、恋人となるとハードルが高くなる。
相手が僕を親友だと思っていると言うことは、僕はその相手の提示してくる(曖昧な)期待値を(無意識に)超えなければならないし、
強要に近い形で押しつけられる要求を(難なく)クリアすることが求められるからである。
多分、ニュースで犯罪者の知人が、大して仲が良かったわけでもないのにマイクを向けられ、
何故かはにかみながら人物評をする際、「そんなことをするような人ではなかった」
等と言うのは、この辺の所為だろう。
他人に毛が生えた程度の奴らが求めてくる期待値まで超え続ける義務はほぼ無いのだから。

そう考えると、恋人は非常に曖昧且つ利害関係を想定しにくい。
「私は貴方が好きです」の言葉に、どれだけの期待値が詰められているのだろうか。
私は貴方の金払いが好きです。
私は貴方がくれるプレゼントが好きです。
私は貴方の財産が好きです。
私は貴方の体が好きです。
私は貴方のコネが好きです。
想像するだけで身震いがする。
自分も含めて、個は個を利用するものでしかないし、だから全てはギブアンドテイクでしか存在し得ないのだけれども、
それじゃあ僕のことを好きだと言ってくれる人にとって、僕はどんな期待値をかけられており、満たさなければならないのかが
最近さっぱり分からない。逆に、その期待値を満たせるならば、僕はそれだけやっていればいい、
もしくはだれかが代わりに満たしてしまえるのではないかと考えていたりもする。
所詮誰かの代役なのではないかとも。
期待値のみしか求めない、求められないというのは、最近の風潮なのかもしれない。
あらゆる産物はギブアンドテイクをする為に「創出される」妥協であると言い切るならば、これも正しい答えなのだろう。

そもそも、僕は愛されているのか?
むしろ愛の期待値は何なんだ?