Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lunatilia/7318a03654bd6f41519af877b1d5bcde to your computer and use it in GitHub Desktop.
Save lunatilia/7318a03654bd6f41519af877b1d5bcde to your computer and use it in GitHub Desktop.
CentOS Userland Linux 7 armv7hlのswapパーティションを削除して、swapファイルに置き換える手順例

CentOS Userland Linux 7 armv7hlのswapパーティションを削除して、swapファイルに置き換える手順例

前提条件

  • Raspberry Pi 3 Model B/B+向け
  • 2018-11-27 22:31がLast modifiedなCentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xzを使用
    (CentOS Linux 7 1810相当 / SHA256:fd7ee31a2a0b868703f0715e9819911f68b160e3ae014317b706c63d716200f6)
  • CentOS 7.x Minimalな環境(クリーンインストール直後でOK)
  • 作業用に10GBぐらいのディスク空き容量
  • root権限で作業
  • ついでにEPELリポジトリを追加

作業例

  1. 作業用ディレクトリ作成
# mkdir -p /tmp/centos-rpi3/{boot,rootfs}
# cd /tmp/centos-rpi3
  1. イメージをダウンロードしてchecksum確認
# curl -L -O http://mirror.centos.org/altarch/7/isos/armhfp/CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz 
# curl -L -O http://mirror.centos.org/altarch/7/isos/armhfp/sha256sum.txt
# grep CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz sha256sum.txt | sha256sum -c -
  1. イメージを展開
# xz -dv CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz
  1. イメージをloopデバイスにマッピングして確認
# kpartx -av CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw
# losetup
  1. loop0p3(rootパーティション)のイメージを取得
# dd if=/dev/mapper/loop0p3 of=./centos-rpi3_loop0p3.img bs=512
  1. loop0p2(swapパーティション)とloop0p3(rootパーティション)を削除
# parted /dev/loop0 -s rm 2 -s rm 3
  1. loopデバイスにリマッピング
# kpartx -uv /dev/loop0
  1. 新たにパーティションを作成
# parted /dev/loop0 -- mkpart primary ext4 1370112s -1s
  1. 再度loopデバイスにリマッピング
# kpartx -uv /dev/loop0
  1. 取得しておいたイメージをloop0p2に書き込む
# dd if=./centos-rpi3_loop0p3.img of=/dev/mapper/loop0p2
  1. パーティションリサイズ
# e2fsck -f /dev/mapper/loop0p2
# resize2fs /dev/mapper/loop0p2
  1. loop0p1(bootパーティション)をマウント
# mount /dev/mapper/loop0p1 /tmp/centos-rpi3/boot
  1. kernel commandでrootパーティションを変更
# sed -i".orig" -e "s/\(mmcblk0p\)./\12/" /tmp/centos-rpi3/boot/cmdline.txt
  1. loop0p1をアンマウント
# umount /dev/mapper/loop0p1
  1. loop0p2(rootパーティション)をマウント
# mount /dev/mapper/loop0p2 /tmp/centos-rpi3/rootfs
  1. rootfs-expandを構成に合わせて変更
# sed -i -e "s/3/2/" /tmp/centos-rpi3/rootfs/usr/bin/rootfs-expand
  1. swapファイルを作成して有効化
# sed -i".orig" -e '/swap/c\/swapfile swap swap noatime 0 0' /tmp/centos-rpi3/rootfs/etc/fstab
# dd if=/dev/zero of=/tmp/centos-rpi3/rootfs/swapfile bs=1M count=512
# chmod 600 /tmp/centos-rpi3/rootfs/swapfile
# mkswap /tmp/centos-rpi3/rootfs/swapfile
  1. EPELリポジトリを追加
# cat > /tmp/centos-rpi3/rootfs/etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0

EOF
  1. loop0p2をアンマウント
# umount /dev/mapper/loop0p2
  1. デバイスマップ削除
# kpartx -dv /dev/loop0
# losetup -d /dev/loop0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment