debian11(bullseys), i386を microSDにコピーする話

Acer AspireOne (Atom n270)という古(いにしえ)の名機を手に入れた。2GBメモリってのもポイント高い。

http://www2.acer.co.jp/support/catalog/FIX_AspireONE_531.pdf

早速、SATA SSDに換装してインストールしたが案外熱い。これってSSDのせい?
microSDで使ったほうが良かったりする?

手順(横着)

  • 方針、、、すでにSSDにインストールされたDebian11をコピって作る。

/dev/sdaにすでにセットアップ済みのdebian11、/dev/sdbに下記構成でコピって立ち上げる。

toshiomi@aspireone:~$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 487M 0 part /boot
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 111.3G 0 part
├─aspireone--vg-root 254:0 0 107.8G 0 lvm /
└─aspireone--vg-swap_1 254:1 0 3.5G 0 lvm [SWAP]
sdb 8:16 1 58.1G 0 disk
├─sdb1 8:17 1 500M 0 part /mnt/root/boot
├─sdb2 8:18 1 54G 0 part /mnt/root
└─sdb3 8:19 1 3.6G 0 part

その他の制約条件

  • 新しい microSD上のrootファイルシステムは nilfs2にしたい。

  • fdiskを使って、microSD上のパーティション設定と mkfs、mkswapをやっとく。

    sudo fdisk /dev/sdb
    sudo mkfs.ext2 -L boot /dev/sdb1
    sudo mkfs.nilfs2 -L root /dev/sdb2
    sudo mkswap -L swap /dev/sdb3

  • マウントし、ファイルコピー

    sudo mount /dev/sdb2 mnt/root
    sudo mount /dev/sdb1 mnt/root/boot
    sudo time rsync -avSh --exclude mnt --exclude dev --exclude proc --exclude sys --exclude run --exclude dev . /mnt/root/

  • ランタイムの特殊ファイルシステムを --bindでマウント。chrootする。

    for i in dev dev/pts proc sys run ; do sudo mkdir mnt/root/$i; done
    for i in dev dev/pts proc sys run ; do sudo mount --bind /$i /mnt/root/$i ; done
    sudo chroot /mnt/root

  • /etc/fstabを書き換える。 今回は全部UUIDで指定したが、別に /dev/sdbxでもOK.

    toshiomi@aspireone:/mnt/root$ cat etc/fstab | sed /^#/d | sed /^$/d
    UUID=4d67b31e-37b5-4621-b038-f81f2a43e263 / nilfs2 defaults 0 1
    UUID=eeac9fc1-2ca4-4b6a-94f6-1e52854e9251 /boot ext2 defaults 0 2
    UUID=a080909d-e08b-457e-ba43-251e6e39b355 none swap sw 0 0

  • update_initramfs -uをする

    vi /etc/initramfs-tools/modules #nilfs2を追加
    sudo /sbin/update-initramfs -u

  • update-grub, grub-installをする。

    sudo update-grub
    sudo grub-install /dev/sdb
    exit

  • bindした特殊ファイルシステム、マイクロSD をアンマウント。

    for i in dev/pts dev proc sys run ; do sudo umount /mnt/root/$i ; done
    sudo umount /mnt/root/boot
    sudo umount /mnt/root

  • シャットダウン -> 再起動し、祈れ!

特記事項。

  • /etc/modulesに nilfs2を追記しても、update-initramfs実行には一切影響なかった。これは盲点。
  • 本当は /dev/mmcblk0を使いたかったが、今回いじった aspireone(atom n270)機では mmcスロットからの起動はサポートしてなかった。(多分、BIOSの問題)
  • ここまでやったが、SSD使っているときと、microSD(+USBアダプタ)とで消費電力は変わらないようだ。じんわり熱くて嫌だ。(泣)