[Linux][CentOS7][自分用メモ] CentOS7とLinux Kernel 3.15.4とext4の組み合わせでswapパーティションが自動マウントされない件について。

AIX、UNIX、Linux

先日から自宅環境で検証しているCentOS7なのですが、検証直後からちょっと困った問題が。

というのもLVM(ext4)環境で使用しているのですが、swapパーティションがなぜか自動マウントしてくれない問題が発生していました。

最初は/etc/fstabにデバイスパスで書いているのが問題だと思い、UUIDで書きなおしたのですが、それでもダメ。

Webで検索しても、該当するような情報は無かったのですが、とりあえずエイヤでやったらうまくいったのでメモしておこうと思います。

検証環境:

# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
#
# /etc/fstab
# Created by anaconda on Tue Jun 10 04:25:42 2014
#
# 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
#
/dev/mapper/vg_proxy-lv_root /                       ext4    noatime,defaults        1 1
UUID=27ae3270-e82f-45b9-add5-b4a553e7f057 /boot                   ext4    defaults        1 2
###/dev/mapper/vg_proxy-lv_swap swap                    swap    defaults        0 0
UUID=48eab2ee-a398-4799-97e3-218b1d9de232 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

手動マウントを試みると問題なくマウントされることを確認。

# swapon /dev/mapper/vg_proxy-lv_swap
# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1

起動直後

# free
total       used       free     shared    buffers     cached
Mem:       2056412     271200    1785212       8716      15908     123668
-/+ buffers/cache:     131624    1924788
Swap:            0          0          0
# journalctl | grep swap
Jul 09 06:59:10 xxx.kometch.local kernel: Command line: ro root=/dev/mapper/vg_proxy-lv_root rd_NO_LUKS rd_LVM_LV=vg_proxy/lv_root rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_LVM_LV=vg_proxy/lv_swap rd_NO_DM rhgb quiet
Jul 09 06:59:10 xxx.kometch.local kernel: Kernel command line: ro root=/dev/mapper/vg_proxy-lv_root rd_NO_LUKS rd_LVM_LV=vg_proxy/lv_root rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_LVM_LV=vg_proxy/lv_swap rd_NO_DM rhgb quiet
Jul 09 06:59:10 xxx.kometch.local dracut: Scanning devices vda2  for LVM logical volumes vg_proxy/lv_root vg_proxy/lv_swap
Jul 09 06:59:10 xxx.kometch.local dracut: inactive '/dev/vg_proxy/lv_swap' [2.00 GiB] inherit

最後の行でdracutがswapパーティションのマウントに失敗していることを確認。

調べていくうちにKernel-imageの再インストールがいいという情報を発見。
自宅環境では最新のKernelを独自buildして使用していたのですが、とりあえず一旦デフォルトの状態に戻してみることに。

# yum distro-sync
Loaded plugins: etckeeper, fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Skipping the running kernel: kernel-3.15.4_kometch_build_20140707-1.x86_64
Resolving Dependencies
--> Running transaction check
---> Package device-mapper-multipath.x86_64 0:0.4.9-66.el7 will be a downgrade
---> Package device-mapper-multipath.x86_64 0:0.4.9-72.el6_5.3 will be erased
---> Package device-mapper-multipath-libs.x86_64 0:0.4.9-66.el7 will be a downgrade
---> Package device-mapper-multipath-libs.x86_64 0:0.4.9-72.el6_5.3 will be erased
---> Package kernel.x86_64 0:3.10.0-123.4.2.el7 will be installed
---> Package kernel.x86_64 0:3.15.0_kometch_build_20140610-1 will be erased
---> Package kernel.x86_64 0:3.15.1_kometch_build_20140617-1 will be erased
---> Package kernel.x86_64 0:3.15.2_kometch_build_20140628-1 will be erased
---> Package kernel.x86_64 0:3.15.3_kometch_build_20140701-1 will be erased
---> Package kernel-devel.x86_64 0:3.10.0-123.4.2.el7 will be installed
---> Package kernel-devel.x86_64 0:3.15.0_kometch_build_20140610-1 will be erased
---> Package kernel-devel.x86_64 0:3.15.1_kometch_build_20140617-1 will be erased
---> Package kernel-devel.x86_64 0:3.15.2_kometch_build_20140628-1 will be erased
---> Package kernel-devel.x86_64 0:3.15.3_kometch_build_20140701-1 will be erased
---> Package kernel-devel.x86_64 0:3.15.4_kometch_build_20140707-1 will be erased
---> Package kernel-headers.x86_64 0:3.10.0-123.4.2.el7 will be a downgrade
---> Package kernel-headers.x86_64 0:3.15.3_kometch_build_20140701-1 will be erased
---> Package kpartx.x86_64 0:0.4.9-66.el7 will be a downgrade
---> Package kpartx.x86_64 0:0.4.9-72.el6_5.3 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================
Package                      Arch   Version                         Repository       Size
===========================================================================================
Installing:
kernel                       x86_64 3.10.0-123.4.2.el7              updates          29 M
kernel-devel                 x86_64 3.10.0-123.4.2.el7              updates         8.9 M
Removing:
kernel                       x86_64 3.15.0_kometch_build_20140610-1 @/kernel-3.15.0_kometch_build_20140610-1.x86_64/6
873 M
kernel                       x86_64 3.15.1_kometch_build_20140617-1 @/kernel-3.15.1_kometch_build_20140617-1.x86_64/6
873 M
kernel                       x86_64 3.15.2_kometch_build_20140628-1 @/kernel-3.15.2_kometch_build_20140628-1.x86_64/6
873 M
kernel                       x86_64 3.15.3_kometch_build_20140701-1 @/kernel-3.15.3_kometch_build_20140701-1.x86_64/6
876 M
kernel-devel                 x86_64 3.15.0_kometch_build_20140610-1 @/kernel-devel-3.15.0_kometch_build_20140610-1.x86_64/6
512 M
kernel-devel                 x86_64 3.15.1_kometch_build_20140617-1 @/kernel-devel-3.15.1_kometch_build_20140617-1.x86_64/6
512 M
kernel-devel                 x86_64 3.15.2_kometch_build_20140628-1 @/kernel-devel-3.15.2_kometch_build_20140628-1.x86_64/6
512 M
kernel-devel                 x86_64 3.15.3_kometch_build_20140701-1 @/kernel-devel-3.15.3_kometch_build_20140701-1.x86_64/6
512 M
kernel-devel                 x86_64 3.15.4_kometch_build_20140707-1 @/kernel-devel-3.15.4_kometch_build_20140707-1.x86_64/6
514 M
Downgrading:
device-mapper-multipath      x86_64 0.4.9-66.el7                    base            107 k
device-mapper-multipath-libs x86_64 0.4.9-66.el7                    base            205 k
kernel-headers               x86_64 3.10.0-123.4.2.el7              updates         1.4 M
kpartx                       x86_64 0.4.9-66.el7                    base             51 k

Transaction Summary
===========================================================================================
Install    2 Packages
Remove     9 Packages
Downgrade  4 Packages

Total download size: 40 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/6): device-mapper-multipath-0.4.9-66.el7.x86_64.rpm              | 107 kB  00:00:00
(2/6): kpartx-0.4.9-66.el7.x86_64.rpm                               |  51 kB  00:00:00
(3/6): device-mapper-multipath-libs-0.4.9-66.el7.x86_64.rpm         | 205 kB  00:00:00
(4/6): kernel-headers-3.10.0-123.4.2.el7.x86_64.rpm                 | 1.4 MB  00:00:00
(5/6): kernel-devel-3.10.0-123.4.2.el7.x86_64.rpm                   | 8.9 MB  00:00:02
(6/6): kernel-3.10.0-123.4.2.el7.x86_64.rpm                         |  29 MB  00:00:05
-------------------------------------------------------------------------------------------
Total                                                      6.7 MB/s |  40 MB  00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
etckeeper: pre transaction commit
Installing : kpartx-0.4.9-66.el7.x86_64                                             1/19
Installing : device-mapper-multipath-libs-0.4.9-66.el7.x86_64                       2/19
Installing : device-mapper-multipath-0.4.9-66.el7.x86_64                            3/19
Installing : kernel-devel-3.10.0-123.4.2.el7.x86_64                                 4/19
Installing : kernel-headers-3.10.0-123.4.2.el7.x86_64                               5/19
Installing : kernel-3.10.0-123.4.2.el7.x86_64                                       6/19
Cleanup    : kernel.x86_64                                                          7/19
Cleanup    : kernel-devel.x86_64                                                    8/19
Cleanup    : kernel-devel.x86_64                                                    9/19
Cleanup    : kernel-devel.x86_64                                                   10/19
Cleanup    : kernel.x86_64                                                         11/19
Cleanup    : kernel-devel.x86_64                                                   12/19
Cleanup    : kernel-devel.x86_64                                                   13/19
Cleanup    : kernel.x86_64                                                         14/19
Cleanup    : kernel-headers-3.15.3_kometch_build_20140701-1.x86_64                 15/19
Cleanup    : kernel.x86_64                                                         16/19
Cleanup    : device-mapper-multipath-0.4.9-72.el6_5.3.x86_64                       17/19
Cleanup    : device-mapper-multipath-libs-0.4.9-72.el6_5.3.x86_64                  18/19
Cleanup    : kpartx-0.4.9-72.el6_5.3.x86_64                                        19/19
etckeeper: post transaction commit
Verifying  : device-mapper-multipath-0.4.9-66.el7.x86_64                            1/19
Verifying  : kernel-3.10.0-123.4.2.el7.x86_64                                       2/19
Verifying  : kernel-headers-3.10.0-123.4.2.el7.x86_64                               3/19
Verifying  : device-mapper-multipath-libs-0.4.9-66.el7.x86_64                       4/19
Verifying  : kernel-devel-3.10.0-123.4.2.el7.x86_64                                 5/19
Verifying  : kpartx-0.4.9-66.el7.x86_64                                             6/19
Verifying  : kernel-3.15.0_kometch_build_20140610-1.x86_64                          7/19
Verifying  : kernel-headers-3.15.3_kometch_build_20140701-1.x86_64                  8/19
Verifying  : device-mapper-multipath-libs-0.4.9-72.el6_5.3.x86_64                   9/19
Verifying  : kernel-3.15.2_kometch_build_20140628-1.x86_64                         10/19
Verifying  : kernel-devel-3.15.1_kometch_build_20140617-1.x86_64                   11/19
Verifying  : kpartx-0.4.9-72.el6_5.3.x86_64                                        12/19
Verifying  : device-mapper-multipath-0.4.9-72.el6_5.3.x86_64                       13/19
Verifying  : kernel-devel-3.15.3_kometch_build_20140701-1.x86_64                   14/19
Verifying  : kernel-3.15.3_kometch_build_20140701-1.x86_64                         15/19
Verifying  : kernel-devel-3.15.0_kometch_build_20140610-1.x86_64                   16/19
Verifying  : kernel-devel-3.15.2_kometch_build_20140628-1.x86_64                   17/19
Verifying  : kernel-devel-3.15.4_kometch_build_20140707-1.x86_64                   18/19
Verifying  : kernel-3.15.1_kometch_build_20140617-1.x86_64                         19/19

Removed:
device-mapper-multipath.x86_64 0:0.4.9-72.el6_5.3
device-mapper-multipath-libs.x86_64 0:0.4.9-72.el6_5.3
kernel.x86_64 0:3.15.0_kometch_build_20140610-1
kernel.x86_64 0:3.15.1_kometch_build_20140617-1
kernel.x86_64 0:3.15.2_kometch_build_20140628-1
kernel.x86_64 0:3.15.3_kometch_build_20140701-1
kernel-devel.x86_64 0:3.15.0_kometch_build_20140610-1
kernel-devel.x86_64 0:3.15.1_kometch_build_20140617-1
kernel-devel.x86_64 0:3.15.2_kometch_build_20140628-1
kernel-devel.x86_64 0:3.15.3_kometch_build_20140701-1
kernel-devel.x86_64 0:3.15.4_kometch_build_20140707-1
kernel-headers.x86_64 0:3.15.3_kometch_build_20140701-1
kpartx.x86_64 0:0.4.9-72.el6_5.3

Installed:
device-mapper-multipath.x86_64 0:0.4.9-66.el7
device-mapper-multipath-libs.x86_64 0:0.4.9-66.el7
kernel.x86_64 0:3.10.0-123.4.2.el7
kernel-devel.x86_64 0:3.10.0-123.4.2.el7
kernel-headers.x86_64 0:3.10.0-123.4.2.el7
kpartx.x86_64 0:0.4.9-66.el7

その後再起動を実施したところ、下記のようにswapパーティションがマウントされていることに気が付きました。

# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1

状況から考えられるのは、

POINT

  • 最新のカーネルを独自buildで使用していた
  • ファイルシステムはext4
  • デフォルトカーネルだと問題ない

ということから組み合わせの問題かなと想像しているところです。
勿論Kernelコンパイルのオプションに間違いがあるということも考えられるので、そちらはそちらで検証してみようかと思います。

同じような問題に当たった方の少しでも役に立てたら幸いです。

IT技術者なら知っておきたい ストレージの原則と技術
IT技術者なら知っておきたい ストレージの原則と技術
この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました