2011年7月31日日曜日

CentOS 6.0 差し替え前のインストールDVDとの差分

CentOS 6.0 がリリースされる際、インストールイメージが差し替え(すり替え?)られるということがありました。そのことを非難する向きもありますが、わたしとしては、早く試す環境が得られれば良かったので、あまり気にせず、差し替え前のイメージでインストールした環境をいじっています。
とはいえ、何が差分だったのかは興味津々です。以下、x86_64版の差分を調べてみました。

まずは、2つのイメージをマウント。
[root@centos6 ~]# sha1sum /dev/scd0
9de87b0c696ebd72b952edb4cc06c24cbdc37d81  /dev/scd0  ※こちらがリリース版の x86_64 DVD1
[root@centos6 ~]# sha1sum /dev/scd1
82637f7d81a6d7dbacf0699dd3bdc72360555dba  /dev/scd1  ※差し替え前の版
[root@centos6 ~]# mkdir /mnt_cent6.0_dvd1_final
[root@centos6 ~]# mkdir /mnt_cent6.0_dvd1_xxxxx
[root@centos6 ~]# mount /dev/scd0 /mnt_cent6.0_dvd1_final
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@centos6 ~]# mount /dev/scd1 /mnt_cent6.0_dvd1_xxxxx
mount: block device /dev/sr1 is write-protected, mounting read-only
[root@centos6 ~]# ls -ld /mnt_cent6.0_dvd1_*
drwxr-xr-x 7 root root 4096 Jul 10 01:53 /mnt_cent6.0_dvd1_final
drwxr-xr-x 7 root root 4096 Jul  7 22:14 /mnt_cent6.0_dvd1_xxxxx
次に、diff を採取。
[root@centos6 ~]# diff -r -u /mnt_cent6.0_dvd1_xxxxx /mnt_cent6.0_dvd1_final
diff -r -u /mnt_cent6.0_dvd1_xxxxx/CentOS_BuildTag /mnt_cent6.0_dvd1_final/CentOS_BuildTag
--- /mnt_cent6.0_dvd1_xxxxx/CentOS_BuildTag     2011-07-07 22:07:27.000000000 +0900
+++ /mnt_cent6.0_dvd1_final/CentOS_BuildTag     2011-07-10 01:46:25.000000000 +0900
@@ -1 +1 @@
-20110707-1307
+20110709-1646
diff -r -u /mnt_cent6.0_dvd1_xxxxx/.discinfo /mnt_cent6.0_dvd1_final/.discinfo
--- /mnt_cent6.0_dvd1_xxxxx/.discinfo   2011-07-07 22:11:58.000000000 +0900
+++ /mnt_cent6.0_dvd1_final/.discinfo   2011-07-10 01:51:03.000000000 +0900
@@ -1,4 +1,4 @@
-1310044044.532095
+1310229985.226287
 6.0
 x86_64
 1
Binary files /mnt_cent6.0_dvd1_xxxxx/images/efiboot.img and /mnt_cent6.0_dvd1_final/images/efiboot.img differ
Binary files /mnt_cent6.0_dvd1_xxxxx/images/efidisk.img and /mnt_cent6.0_dvd1_final/images/efidisk.img differ
Binary files /mnt_cent6.0_dvd1_xxxxx/images/install.img and /mnt_cent6.0_dvd1_final/images/install.img differ
Binary files /mnt_cent6.0_dvd1_xxxxx/images/pxeboot/initrd.img and /mnt_cent6.0_dvd1_final/images/pxeboot/initrd.img differ
Only in /mnt_cent6.0_dvd1_final/repodata: 2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9-c6-x86_64-comps.xml
Only in /mnt_cent6.0_dvd1_final/repodata: 419f44d9f4e345e677c6ab519b62e2228cbcdf9c523d01d6a029fa4f02f66406-primary.xml.gz
Only in /mnt_cent6.0_dvd1_xxxxx/repodata: 52ad0604bc6f4555d84bb0c32e2213a3a8008091993eae46d8100ade6117fbe4-c6-x86_64-comps.xml.gz
Only in /mnt_cent6.0_dvd1_xxxxx/repodata: 80381e2b79fcd2ca61a289c783fcf29e6715912fa2e28b3e955b94c6e6725691-primary.sqlite.bz2
Only in /mnt_cent6.0_dvd1_xxxxx/repodata: 947c06b3449529ce6dea6c2610150b5c6f029094ab83093210765a866a528c6c-c6-x86_64-comps.xml
Only in /mnt_cent6.0_dvd1_xxxxx/repodata: b5f258df6a887534bb37ef8de488f238726ef2e0b4ded2180d756c45c6d843dd-primary.xml.gz
Only in /mnt_cent6.0_dvd1_final/repodata: c89fe3615797af0f5fcf9f53ebb36a605e713680139da34f71c4fe198ba9699e-c6-x86_64-comps.xml.gz
Only in /mnt_cent6.0_dvd1_final/repodata: e601759c6eed524aa4d8c5267f087f6c72491e3d811b3c937438e7a9b0747130-c6-x86_64-comps.xml.gz
Only in /mnt_cent6.0_dvd1_xxxxx/repodata: ef31b9351dab1a0ae826b0f1ca136059acdb81227fd7ff7d78099c5c58cfa035-c6-x86_64-comps.xml.gz
Only in /mnt_cent6.0_dvd1_final/repodata: ffb0e227e2cdd8a2b3609b65d7f38f6c1e756b437405b2918d6d36ebe59a0cb4-primary.sqlite.bz2
diff -r -u /mnt_cent6.0_dvd1_xxxxx/repodata/repomd.xml /mnt_cent6.0_dvd1_final/repodata/repomd.xml
--- /mnt_cent6.0_dvd1_xxxxx/repodata/repomd.xml 2011-07-07 22:14:37.000000000 +0900
+++ /mnt_cent6.0_dvd1_final/repodata/repomd.xml 2011-07-10 01:53:42.000000000 +0900
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?repomd xmlns="http://linux.duke.edu/metadata/repo" xmlns:rpm="http://linux.duke.edu/metadata/rpm">
-  <?revision>1310044318<?/revision>
+  <?revision>1310230263<?/revision>
   <?data type="other_db">
-    <location xml:base="media://1310044044.532095#1" href="repodata/5abe055f4bf7a1670d7b48a8172bec678861f2bcb8bc001ec3afa934638edc91-other.sqlite.bz2"/>
+    <location xml:base="media://1310229985.226287#1" href="repodata/5abe055f4bf7a1670d7b48a8172bec678861f2bcb8bc001ec3afa934638edc91-other.sqlite.bz2"/>
     <checksum type="sha256">5abe055f4bf7a1670d7b48a8172bec678861f2bcb8bc001ec3afa934638edc91</checksum>
-    <timestamp>1310044455.53</timestamp>
+    <timestamp>1310230400.59</timestamp>
     <size>2409110</size>
     <open-size>10912768</open-size>
     <open-checksum type="sha256">0321c3769ba1328fb66df664d748810b9c4ad3a9c1b11b081954e4b3cffbb34f</open-checksum>
@@ -12,16 +12,16 @@
   </data>
   <data type="other">
     <checksum type="sha256">d4b0b37148f088ff02731d7c5d12af279fc6bfa1bde26aa2c4ccf18f2ac0d493</checksum>
-    <timestamp>1310044450</timestamp>
+    <timestamp>1310230395</timestamp>
     <size>2634277</size>
     <open-size>11604182</open-size>
     <open-checksum type="sha256">eab32f9a510d6ff5209aae12c1e44c4955a6de3e31dd0a12730ad5e4d8bdb47e</open-checksum>
-    <location xml:base="media://1310044044.532095#1" href="repodata/d4b0b37148f088ff02731d7c5d12af279fc6bfa1bde26aa2c4ccf18f2ac0d493-other.xml.gz"/>
+    <location xml:base="media://1310229985.226287#1" href="repodata/d4b0b37148f088ff02731d7c5d12af279fc6bfa1bde26aa2c4ccf18f2ac0d493-other.xml.gz"/>
   </data>
   <data type="filelists_db">
-    <location xml:base="media://1310044044.532095#1" href="repodata/d30e7a407b0f019826c949cbc814944e6d178242abcadb5e79a891002cfb0107-filelists.sqlite.bz2"/>
+    <location xml:base="media://1310229985.226287#1" href="repodata/d30e7a407b0f019826c949cbc814944e6d178242abcadb5e79a891002cfb0107-filelists.sqlite.bz2"/>
     <checksum type="sha256">d30e7a407b0f019826c949cbc814944e6d178242abcadb5e79a891002cfb0107</checksum>
-    <timestamp>1310044469.52</timestamp>
+    <timestamp>1310230414.65</timestamp>
     <size>5772387</size>
     <open-size>31381504</open-size>
     <open-checksum type="sha256">12d2719025bbae4f357ea0a33f008d3ecce3778c0369c2af87e902626aabf43a</open-checksum>
@@ -29,38 +29,38 @@
   </data>
   <data type="filelists">
     <checksum type="sha256">c3797545a90f38e0738506e2b19c9a61e465f777156e0e1418a094d9ee08f23a</checksum>
-    <timestamp>1310044450</timestamp>
+    <timestamp>1310230395</timestamp>
     <size>5201743</size>
     <open-size>66967944</open-size>
     <open-checksum type="sha256">f4b9c8299f4a11b899e5ab43467d8473bc06a844786c4391f3f816673d602413</open-checksum>
-    <location xml:base="media://1310044044.532095#1" href="repodata/c3797545a90f38e0738506e2b19c9a61e465f777156e0e1418a094d9ee08f23a-filelists.xml.gz"/>
+    <location xml:base="media://1310229985.226287#1" href="repodata/c3797545a90f38e0738506e2b19c9a61e465f777156e0e1418a094d9ee08f23a-filelists.xml.gz"/>
   </data>
   <data type="primary_db">
-    <location xml:base="media://1310044044.532095#1" href="repodata/80381e2b79fcd2ca61a289c783fcf29e6715912fa2e28b3e955b94c6e6725691-primary.sqlite.bz2"/>
-    <checksum type="sha256">80381e2b79fcd2ca61a289c783fcf29e6715912fa2e28b3e955b94c6e6725691</checksum>
-    <timestamp>1310044477.57</timestamp>
-    <size>4375011</size>
+    <location xml:base="media://1310229985.226287#1" href="repodata/ffb0e227e2cdd8a2b3609b65d7f38f6c1e756b437405b2918d6d36ebe59a0cb4-primary.sqlite.bz2"/>
+    <checksum type="sha256">ffb0e227e2cdd8a2b3609b65d7f38f6c1e756b437405b2918d6d36ebe59a0cb4</checksum>
+    <timestamp>1310230422.81</timestamp>
+    <size>4375882</size>
     <open-size>19915776</open-size>
-    <open-checksum type="sha256">76b00fa614ae6691a30f60a3acae9886ad84b248d72673746db6518c7e356376</open-checksum>
+    <open-checksum type="sha256">5bfd617cf5cf192dc2fd74d5f429d319313c04ccf96ce85718fe9515628a60e5</open-checksum>
     <database_version>10</database_version>
   </data>
   <data type="primary">
-    <checksum type="sha256">b5f258df6a887534bb37ef8de488f238726ef2e0b4ded2180d756c45c6d843dd</checksum>
-    <timestamp>1310044450</timestamp>
-    <size>2470731</size>
+    <checksum type="sha256">419f44d9f4e345e677c6ab519b62e2228cbcdf9c523d01d6a029fa4f02f66406</checksum>
+    <timestamp>1310230395</timestamp>
+    <size>2470810</size>
     <open-size>16478243</open-size>
-    <open-checksum type="sha256">b933586069940e14f96b8ce2c0cbdfbe648ae0f6986edd0bf78ace4f5313e975</open-checksum>
-    <location xml:base="media://1310044044.532095#1" href="repodata/b5f258df6a887534bb37ef8de488f238726ef2e0b4ded2180d756c45c6d843dd-primary.xml.gz"/>
+    <open-checksum type="sha256">9196e4de0ddeb13e4ca36532a5dc00f054dab340ceb799e8dd87cbf2ad77085f</open-checksum>
+    <location xml:base="media://1310229985.226287#1" href="repodata/419f44d9f4e345e677c6ab519b62e2228cbcdf9c523d01d6a029fa4f02f66406-primary.xml.gz"/>
   </data>
   <data type="group_gz">
-    <location xml:base="media://1310044044.532095#1" href="repodata/ef31b9351dab1a0ae826b0f1ca136059acdb81227fd7ff7d78099c5c58cfa035-c6-x86_64-comps.xml.gz"/>
-    <checksum type="sha256">ef31b9351dab1a0ae826b0f1ca136059acdb81227fd7ff7d78099c5c58cfa035</checksum>
-    <open-checksum type="sha256">947c06b3449529ce6dea6c2610150b5c6f029094ab83093210765a866a528c6c</open-checksum>
-    <timestamp>1310044477</timestamp>
+    <location xml:base="media://1310229985.226287#1" href="repodata/c89fe3615797af0f5fcf9f53ebb36a605e713680139da34f71c4fe198ba9699e-c6-x86_64-comps.xml.gz"/>
+    <checksum type="sha256">c89fe3615797af0f5fcf9f53ebb36a605e713680139da34f71c4fe198ba9699e</checksum>
+    <open-checksum type="sha256">2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9</open-checksum>
+    <timestamp>1310230422</timestamp>
   </data>
   <data type="group">
-    <location xml:base="media://1310044044.532095#1" href="repodata/947c06b3449529ce6dea6c2610150b5c6f029094ab83093210765a866a528c6c-c6-x86_64-comps.xml"/>
-    <checksum type="sha256">947c06b3449529ce6dea6c2610150b5c6f029094ab83093210765a866a528c6c</checksum>
-    <timestamp>1310044477</timestamp>
+    <location xml:base="media://1310229985.226287#1" href="repodata/2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9-c6-x86_64-comps.xml"/>
+    <checksum type="sha256">2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9</checksum>
+    <timestamp>1310230422</timestamp>
   </data>
 </repomd>
diff -r -u /mnt_cent6.0_dvd1_xxxxx/repodata/TRANS.TBL /mnt_cent6.0_dvd1_final/repodata/TRANS.TBL
--- /mnt_cent6.0_dvd1_xxxxx/repodata/TRANS.TBL  2011-07-07 22:14:38.000000000 +0900
+++ /mnt_cent6.0_dvd1_final/repodata/TRANS.TBL  2011-07-10 01:53:43.000000000 +0900
@@ -1,10 +1,10 @@
-F 52AD0604.GZ;1                                                                                                                                                                                                     52ad0604bc6f4555d84bb0c32e2213a3a8008091993eae46d8100ade6117fbe4-c6-x86_64-comps.xml.gz
+F 2A7E0C1D.XML;1                                                                                                                                                                                                    2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9-c6-x86_64-comps.xml
+F 419F44D9.GZ;1                                                                                                                                                                                                     419f44d9f4e345e677c6ab519b62e2228cbcdf9c523d01d6a029fa4f02f66406-primary.xml.gz
 F 5ABE055F.BZ2;1                                                                                                                                                                                                    5abe055f4bf7a1670d7b48a8172bec678861f2bcb8bc001ec3afa934638edc91-other.sqlite.bz2
-F 80381E2B.BZ2;1                                                                                                                                                                                                    80381e2b79fcd2ca61a289c783fcf29e6715912fa2e28b3e955b94c6e6725691-primary.sqlite.bz2
-F 947C06B3.XML;1                                                                                                                                                                                                    947c06b3449529ce6dea6c2610150b5c6f029094ab83093210765a866a528c6c-c6-x86_64-comps.xml
-F B5F258DF.GZ;1                                                                                                                                                                                                     b5f258df6a887534bb37ef8de488f238726ef2e0b4ded2180d756c45c6d843dd-primary.xml.gz
 F C3797545.GZ;1                                                                                                                                                                                                     c3797545a90f38e0738506e2b19c9a61e465f777156e0e1418a094d9ee08f23a-filelists.xml.gz
+F C89FE361.GZ;1                                                                                                                                                                                                     c89fe3615797af0f5fcf9f53ebb36a605e713680139da34f71c4fe198ba9699e-c6-x86_64-comps.xml.gz
 F D30E7A40.BZ2;1                                                                                                                                                                                                    d30e7a407b0f019826c949cbc814944e6d178242abcadb5e79a891002cfb0107-filelists.sqlite.bz2
 F D4B0B371.GZ;1                                                                                                                                                                                                     d4b0b37148f088ff02731d7c5d12af279fc6bfa1bde26aa2c4ccf18f2ac0d493-other.xml.gz
-F EF31B935.GZ;1                                                                                                                                                                                                     ef31b9351dab1a0ae826b0f1ca136059acdb81227fd7ff7d78099c5c58cfa035-c6-x86_64-comps.xml.gz
+F E601759C.GZ;1                                                                                                                                                                                                     e601759c6eed524aa4d8c5267f087f6c72491e3d811b3c937438e7a9b0747130-c6-x86_64-comps.xml.gz
+F FFB0E227.BZ2;1                                                                                                                                                                                                    ffb0e227e2cdd8a2b3609b65d7f38f6c1e756b437405b2918d6d36ebe59a0cb4-primary.sqlite.bz2
 F REPOMD.XML;1                                                                                                                                                                                                      repomd.xml
diff -r -u /mnt_cent6.0_dvd1_xxxxx/.treeinfo /mnt_cent6.0_dvd1_final/.treeinfo
--- /mnt_cent6.0_dvd1_xxxxx/.treeinfo   2011-07-07 22:07:21.000000000 +0900
+++ /mnt_cent6.0_dvd1_final/.treeinfo   2011-07-10 01:46:22.000000000 +0900
@@ -1,6 +1,6 @@
 [general]
 family = CentOS
-timestamp = 1310043725.69
+timestamp = 1310229667.07
 variant = 
 totaldiscs = 1
 version = 6.0
これを見ると、RPM が格納されている Packages ディレクトリ下には差分が無いですから、インストール後の実行環境には差が無いのでは? と思いましたが、はて?
EFI ブートで何かあったのかな?(efiboot.img が差し替わっているので)

DVD2 のほうも同様に。
[root@centos6 ~]# sha1sum /dev/scd0
5e3834621f11fbcca78cf7d70625c647045f45f5  /dev/scd0  ※こちらがリリース版の x86_64 DVD2
[root@centos6 ~]# sha1sum /dev/scd1
e09c6406c0658dbe28beec363c7adfb0c2c5c3f7  /dev/scd1  ※差し替え前の版
[root@centos6 ~]# mkdir /mnt_cent6.0_dvd2_final
[root@centos6 ~]# mkdir /mnt_cent6.0_dvd2_xxxxx
[root@centos6 ~]# mount /dev/scd0 /mnt_cent6.0_dvd2_final
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@centos6 ~]# mount /dev/scd1 /mnt_cent6.0_dvd2_xxxxx
mount: block device /dev/sr1 is write-protected, mounting read-only
[root@centos6 ~]# ls -ld /mnt_cent6.0_dvd2_*
drwxr-xr-x 3 root root 2048 Jul 10 01:51 /mnt_cent6.0_dvd2_final
drwxr-xr-x 3 root root 2048 Jul  7 22:11 /mnt_cent6.0_dvd2_xxxxx
diff を採取。
[root@centos6 ~]# diff -r -u /mnt_cent6.0_dvd2_xxxxx /mnt_cent6.0_dvd2_final
diff -r -u /mnt_cent6.0_dvd2_xxxxx/CentOS_BuildTag /mnt_cent6.0_dvd2_final/CentOS_BuildTag
--- /mnt_cent6.0_dvd2_xxxxx/CentOS_BuildTag     2011-07-07 22:07:27.000000000 +0900
+++ /mnt_cent6.0_dvd2_final/CentOS_BuildTag     2011-07-10 01:46:25.000000000 +0900
@@ -1 +1 @@
-20110707-1307
+20110709-1646
diff -r -u /mnt_cent6.0_dvd2_xxxxx/.discinfo /mnt_cent6.0_dvd2_final/.discinfo
--- /mnt_cent6.0_dvd2_xxxxx/.discinfo   2011-07-07 22:11:58.000000000 +0900
+++ /mnt_cent6.0_dvd2_final/.discinfo   2011-07-10 01:51:03.000000000 +0900
@@ -1,4 +1,4 @@
-1310044044.532095
+1310229985.226287
 6.0
 x86_64
 2
diff -r -u /mnt_cent6.0_dvd2_xxxxx/.treeinfo /mnt_cent6.0_dvd2_final/.treeinfo
--- /mnt_cent6.0_dvd2_xxxxx/.treeinfo   2011-07-07 22:07:21.000000000 +0900
+++ /mnt_cent6.0_dvd2_final/.treeinfo   2011-07-10 01:46:22.000000000 +0900
@@ -1,6 +1,6 @@
 [general]
 family = CentOS
-timestamp = 1310043725.69
+timestamp = 1310229667.07
 variant = 
 totaldiscs = 1
 version = 6.0
というわけで、DVD2 については、単にISOイメージの再作成をしただけで、中身は変わらないみたいです。

2011年7月24日日曜日

CentOS 6.0 で NIC と ethX の対応を変更する

CentOS 5 以下では、/etc/sysconfig/network-scripts/ifcfg-ethX の HWADDR= に MAC アドレスを指定することで、NIC と ethX の対応関係を変更することができました。しかし、CentOS 6.0 では、HWADDR= による入れ替えはできなくなりました。
CentOS 6.0 では、/etc/udev/rules.d/S70-persistent-net.rules の NAME= により、入れ替えを行うことができます。
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a3:8b:6c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a3:8b:6d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
なお、ifcfg-ethX に、HWADDR= を指定することはできるものの、実際の MAC と一致しているかどうかのチェックのみ行うようになっています。
/etc/sysconfig/network-scripts/ifup-eth より抜粋します。
...
# bail out, if the MAC does not fit
if [ -n "${HWADDR}" ]; then
    FOUNDMACADDR=$(get_hwaddr ${REALDEVICE})
    if [ "${FOUNDMACADDR}" != "${HWADDR}" -a "${FOUNDMACADDR}" != "${MACADDR}" ]; then
            echo $"Device ${DEVICE} has different MAC address than expected, ignoring."
            exit 1
    fi
fi
...
上記が CentOS 6.0 の記述内容ですが、CentOS 5 では次のようになっており、rename_device() という関数により入れ替えが行われていました。
...
# remap, if the device is bound with a MAC address and not the right device num
# bail out, if the MAC does not fit
if [ -n "${HWADDR}" ]; then
    FOUNDMACADDR=`get_hwaddr ${REALDEVICE}`
    if [ "${FOUNDMACADDR}" != "${HWADDR}" ]; then
        curdev=`get_device_by_hwaddr ${HWADDR}`
        if [ -n "$curdev" ]; then
          rename_device "${REALDEVICE}" "${HWADDR}" "${curdev}" || {
            echo $"Device ${DEVICE} has different MAC address than expected, ignoring."
            exit 1
          }
        else
            echo $"Device ${DEVICE} has different MAC address than expected, ignoring."
            exit 1
        fi
    fi
fi
...
参考URL: https://access.redhat.com/kb/docs/DOC-17338

2011-08-07追記
固定化する方法について、書きましたので、よろしければ参照ください。
CentOS 6.0 で NIC と ethX の対応を固定化する

CentOS 6.0 で NIC 交換した場合の挙動

以前、CentOS 4 および CentOS 5 について「NIC 交換時の CentOS における kudzu の挙動」という記事を書きましたが、CentOS 6.0 の場合にはどうなるのか実験してみました。
今回も、VMware の設定ファイルをいじって実験しています。

MAC を変更して再起動したら、eth0 ではなくて eth1 になってしまいました。
[root@centos6 ~]# cat /etc/redhat-release 
CentOS Linux release 6.0 (Final)
[root@centos6 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth*
/etc/sysconfig/network-scripts/ifcfg-eth0
[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0"
HWADDR="00:0C:29:A3:8B:6B"
NM_CONTROLLED="yes"
ONBOOT="no"
[root@centos6 ~]# cat /etc/udev/rules.d/70-persistent-net.rules 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a3:8b:6b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a3:8b:69", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
[root@centos6 ~]# ifconfig eth0
eth0: error fetching interface information: Device not found
[root@centos6 ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:A3:8B:69
CentOS 5 や 4 と違って、/etc/sysconfig/network-scripts/ifcfg-eth* が自動で増えたり書き換わることはないのですが、udev のルールファイルが自動更新されます。
素直に下記のように変更して、システムを再起動すれば、対処できます。
[root@centos6 ~]# cat /etc/udev/rules.d/70-persistent-net.rules 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000) (custom name provided by external tool)
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a3:8b:6b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a3:8b:69", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0"
HWADDR="00:0C:29:A3:8B:69"
NM_CONTROLLED="yes"
ONBOOT="no"
[root@centos6 ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:A3:8B:69
わたしは初回、udev のほうに気をとられて、ifcfg-eth* の中の HWADDR の書き換えを忘れてハマりました。ご注意ください。

なお、70-persistent-net.rules ファイルを自動書き換えしているのは、/lib/udev/write_net_rules です。シェルスクリプトなので、眺めてみると、メカニズムが垣間見えて良いかも。


2011-08-07追記
固定化する方法について、書きましたので、よろしければ参照ください。
CentOS 6.0 で NIC と ethX の対応を固定化する

2011年7月18日月曜日

CentOS 6 で ntfs をマウントする

CentOS 6 においても、標準では ntfs をマウントできませんが、RHEL6 向けの EPEL が既に存在しているので、ntfs-3g をインストールすれば、マウントできるようになります。

http://download.fedora.redhat.com/pub/epel/6/

まずは、ここの epel-release-6-5.noarch.rpm をインストールします。そうすると、/etc/yum.repos.d/epel.repo が出来ますが、1点注意する必要があり、デフォルトで EPEL からアップデートしないように、/etc/yum.repos.d/epel.repo の [epel] を enabled=0 に変更します。
[epel]
...
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

ここまで準備が出来たら、ntfs-3g をインストールします。
# yum install ntfs-3g --enablerepo=epel
あとは、マウントするだけです。-t ntfs を指定してマウントすればいいです。
# mount -t ntfs /dev/sdb1 /mnt_sdb1

2011-08-07追記
CentOS 5 の場合も同様で、http://download.fedora.redhat.com/pub/epel/5/ から epel-release-5-4.noarch.rpm を拾ってきて、同様の手順でいけます。

2011-09-25追記
CentOS で、いまさら古いカーネルを使う人もいないでしょうけど、ntfs-3g は FUSE ベースなので、kernel-2.6.18-164.el5 以上である必要があります。
[root@centos5 ~]# grep FUSE /boot/config-2.6.18-128.el5 
# CONFIG_FUSE_FS is not set
[root@centos5 ~]# grep FUSE /boot/config-2.6.18-164.el5 
CONFIG_FUSE_FS=m
このように、kernel-2.6.18-164.el5 (CentOS 5.4) から FUSE が有効化されています。

2012-05-26追記
リンク切れになってましたので、追記です。
http://fedoraproject.org/wiki/EPEL
こちらの、The newest version of 'epel-release' for EL5 から epel-release-5-4.noarch を入手すれば良いです。EL6 も同様に。

2014-05-04追記
RHEL7.0 RC を試しましたが、今迄と同様に ntfs-3g は同梱されてはおらず、EPEL から提供されるようです。既に EL7 向けの beta 版 EPEL が公開されており、そちらから ntfs-3g をインストールしたところ、NTFS 領域をマウントできました。
http://developerblog.redhat.com/2014/02/20/rhel-7-beta-extra-packages/

2015-02-10追記
その後、RHEL7/CentOS7 向けの EPEL がリリース済みで、ntfs-3g が利用できます。なお、RHEL7 向けの ntfs-3g は、fstrim が可能になっています。
http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/repoview/epel-release.html

2015-11-17追記
ログイン必要ですが、Red Hat 社の Knowledgebase もあったのでメモ。
Red Hat Enterprise Linux で NTFS サポートを有効にする方法

sosreport の出力先ディレクトリを変更する方法

sosreport は Python で記述されており、デフォルトでは出力先ディレクトリは /tmp になっていますが、変更することも可能です。※2011-07-24追記、バージョンにより指定方法が違うので最後まで読んでください。TMPDIR が使えるのは sos-1.7-9.49.el5 以下までです。
/usr/lib/python2.?/site-packages/sos/policyredhat.py を見ますと、gettempdir() が使われています。
...
    def packageResults(self):

        if len(self.ticketNumber):
            namestr = self.reportName + "." + self.ticketNumber
        else:
            namestr = self.reportName

        ourtempdir = gettempdir()
        tarballName = os.path.join(ourtempdir,  "sosreport-" + namestr + ".tar.bz2")
...
この gettempdir() は、環境変数 TMPDIR を参照してくれるので、sosreport の実行前に、TMPDIR に出力させたい場所を指定すれば良いです。
# export TMPDIR=/home
# sosreport -k rpm.rpmva=off
...

Creating compressed archive...

Your sosreport has been generated and saved in:
  /home/sosreport-xxx-435993-d02afb.tar.bz2
/tmp の空きが少なくて、別の領域(別のパーティション)へ出力したい場面で役立つものと思います。

2011-07-24追記
RHEL5.7 のテクニカルノートを読んだら、最新の sos では、--tmp-dir オプションが追加されているようです。
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/5.7_Technical_Notes/sos.html
* Prior to this update, the user could not change the target location for storing sos reports. Due to this, sos reports were not collected if the /tmp/ directory was full. This update adds the "--tmp-dir" option to the sosreport utility to allow the user to specify the target directory. (BZ#562283)
ソースを読んでみると、gettempdir() が呼び出されなくなってしまっています。┐( ̄ヘ ̄)┌
...
    def packageResults(self):

        if len(self.ticketNumber):
            namestr = self.reportName + "." + self.ticketNumber
        else:
            namestr = self.reportName

        ourtempdir = self.cInfo['dstrootparent']
        tarballName = "sosreport-" + namestr + ".tar.bz2"
...
めんどくさい状況を作ってくれるもんだな。。。

2011-12-21追記
1.7-9.54.el5_7.1 で、また TMPDIR が使えるようになったようです。
ChangeLog から抜粋。
* Thu Nov 24 2011 Bryn M. Reeves  - 1.7-9.54.el5_7.1
- Fix handling of TMP environment variable
Resolves: bz748804
このBugzillaは非公開でした。

2011年7月16日土曜日

ファイルをスパース(sparse)化する方法

主に、Linux のクラッシュダンプファイル、または、プロセスのコアファイルを、誰かから送付してもらった場合、本来スパースファイルであるものが、送付方法によっては非スパース化してしまって、ディスクを浪費してしまう場合があります。
そんな局面で、スパースファイルに戻す方法です。
# dd if=/dev/zero of=test.dd bs=4096 count=1000    ※実験のためオールゼロファイル作成
1000+0 records in
1000+0 records out
4096000 bytes (4.1 MB) copied, 0.092697 seconds, 44.2 MB/s

# du -hs test.dd 
4.0M    test.dd

# cp -p --sparse=always test.dd test.dd.sparsed

# du -hs test.dd.sparsed    ※確認
0       test.dd.sparsed
書くまでもないですが、圧縮形式の vmcore には効果が無いですから、上記の操作でディスク節約を試みる前に、file コマンドで形式を確認したほうがいいです。
# file vmcore 
vmcore: data    ※これだったらダメ
なお、逆に誰かにダンプやコアファイルを送付する場合は、次のように tar の S オプションをつけてセーブすると親切です。親切かどうかチェック(相手のレベルをチェック)してたりします。(^ー^;>
# tar zcfS vmcore.tgz ./127.0.0.1-2010-08-31-23:27:08/vmcore
./127.0.0.1-2010-08-31-23:27:08/ の部分も小さな親切になります。

2011-11-27追記
カーネルのクラッシュダンプや core 以外にも、KVM などの仮想マシンで使う仮想ディスクファイルもスパースなので、上記方法が役に立つ (応用できる) 場合があるかと思います。
次のURLの方のように、仮想マシン上からゼロ書き込み後に cp --sparse=always でスパース化処理すれば、理論上は仮想ディスクファイルが縮小できる場合があるはず。
http://www.syuhitu.org/other/skipspace/skipspace.html

2011年7月9日土曜日

yum でローカルリポジトリを指定する方法

ネットで簡単に出て来そうな内容ですが、自分用のメモ。

/etc/yum.repos.d/local.repo を、次の内容で作る。
[local]
name=local
baseurl=file:///mnt_cdrom/
enabled=0
gpgcheck=0
/mnt_cdrom に、ISO イメージをマウントして、そこから追加インストールなどなど。
[root@centos6 ~]# yum install lftp --disablerepo=* --enablerepo=local
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package lftp.x86_64 0:4.0.9-1.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================
 Package           Arch                Version                   Repository          Size
==========================================================================================
Installing:
 lftp              x86_64              4.0.9-1.el6               local              753 k

Transaction Summary
==========================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 753 k
Installed size: 2.5 M
Is this ok [y/N]:
CentOS 6 の yum リポジトリはまだ使えないので、とりあえず上記のように対応・・・

CentOS 6.0 がやっとリリースされました(入手可能になりました)

今朝、ミラーサイトの一部で、iso イメージが見えるようになったので、早速ダウンロード&インストールしました。
お試しで、VMware 上へのインストールでしたが、特に問題なく成功しました。

次は、インストール途中の画面です。

次は、ウェルカム画面です。

次は、gdmのログイン画面です。

次は、ログイン後のデスクトップ画面です。


2011-07-09 18:30追記
CentOS 5 との違いを少し。

Fedora を触っている人は既にわかっているでしょうけど、ブートパラメータが今までになく多数指定されています。
[root@centos6 ~]# cat /proc/cmdline 
ro root=UUID=8eacb835-454e-42a6-910d-a06b86f29344 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=jp106  rhgb quiet
しかしこれらは、カーネルへの指定ではなく、dracut への指定です。man dracut 参照。

/etc/fstab を見てみると・・・
[root@centos6 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sat Jul  9 17:51:00 2011
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=8eacb835-454e-42a6-910d-a06b86f29344 /                       ext4    defaults        1 1
UUID=295fafaa-b09c-4ce7-aa8e-72c408e9f916 /boot                   ext4    defaults        1 2
UUID=e11f0fe3-a7b2-438f-9c40-880820091502 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
LABEL 指定ではなく、UUID 指定に変わっています。これは、仮想化環境への考慮であろうと思いますが、長くて取り扱いが手間に感じます。なお、次のようにデフォルトでは、LABEL は付与されません。
[root@centos6 ~]# blkid
/dev/sda1: UUID="295fafaa-b09c-4ce7-aa8e-72c408e9f916" TYPE="ext4" 
/dev/sda2: UUID="e11f0fe3-a7b2-438f-9c40-880820091502" TYPE="swap" 
/dev/sda3: UUID="8eacb835-454e-42a6-910d-a06b86f29344" TYPE="ext4" 

/proc の下は、こんな感じです。
[root@centos6 ~]# ls /proc
1      12421  12490  1400   17    205  356  965          iomem         sched_debug
10     12423  12530  1401   1718  21   36   967          ioports       schedstat
1000   12429  12532  1408   1731  218  37   968          irq           scsi
1011   12431  12726  1418   1733  22   38   969          kallsyms      self
1012   12433  12746  1443   1736  227  39   993          kcore         slabinfo
11     12435  12773  1452   1738  23   4    994          keys          softirqs
11392  12441  12777  1453   1741  230  40   999          key-users     stat
11393  12442  12778  1494   1746  231  402  acpi         kmsg          swaps
11394  12444  12779  15     1747  24   45   buddyinfo    kpagecount    sys
11398  12446  1280   1500   1775  25   47   bus          kpageflags    sysrq-trigger
12     12449  1299   1517   1778  26   48   cgroups      loadavg       sysvipc
12301  12453  13     1540   1782  27   5    cmdline      locks         timer_list
12311  12454  1311   15816  18    28   568  cpuinfo      mdstat        timer_stats
12320  12455  1320   15819  1809  29   6    crypto       meminfo       tty
12321  12465  13265  16     1879  3    7    devices      misc          uptime
12380  12470  1330   1605   1884  30   750  diskstats    modules       version
12386  12472  1335   1616   19    317  751  dma          mounts        vmallocinfo
12389  12480  1342   1623   1936  318  752  driver       mpt           vmstat
1239   12481  1343   1627   1957  319  77   execdomains  mtd           zoneinfo
12394  12482  1362   1641   1969  33   8    fb           mtrr
12411  12484  1369   1650   1975  34   9    filesystems  net
12418  12488  13980  1661   2     340  938  fs           pagetypeinfo
12419  12489  14     1672   20    35   939  interrupts   partitions
いくつか増えています。

プロセスアカウントのフォーマットが V3 になりました。
[root@centos6 ~]# grep ACCT_V3 /boot/config-2.6.32-71.el6.x86_64 
CONFIG_BSD_PROCESS_ACCT_V3=y


2011-07-13追記
1点書き忘れてましたが、CentOS 5 と比べると OS 起動が格段に速くなっています。


2011-07-14追記
RHEL6 での変更点について、レッドハットがまとまったドキュメントを公開していますので、CentOS 5 と CentOS 6 の違いを学習するのに、そのまんま役立つものと思います。

http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/pdf/Migration_Planning_Guide/Red_Hat_Enterprise_Linux-6-Migration_Planning_Guide-ja-JP.pdf
人気ブログランキングへ にほんブログ村 IT技術ブログへ