愛島発電所

QT SOLAR 愛島発電所

本日の発電量
1729 kWh
現在の日射量
0 Wh/㎡
現在の外気温
3.4 ℃

(2024/12/10 23:34 更新)

下増田発電所

QT SOLAR 下増田発電所

本日の発電量
235 kWh
現在の日射量
1 Wh/㎡
現在の外気温
1.1 ℃

(2024/12/10 23:31 更新)

北原東発電所

QT SOLAR 北原東発電所

本日の発電量
324 kWh
現在の日射量
4 Wh/㎡
現在の外気温
1.3 ℃

(2024/12/10 23:19 更新)

長久良辺発電所

QT SOLAR 長久良辺発電所

本日の発電量
315 kWh
現在の日射量
6 Wh/㎡
現在の外気温
4.7 ℃

(2024/12/10 23:13 更新)

白坂発電所

QT SOLAR 白坂発電所

本日の発電量
208 kWh
現在の日射量
5 Wh/㎡
現在の外気温
4.8 ℃

(2024/12/10 23:35 更新)

清水沢発電所

QT SOLAR 清水沢発電所

本日の発電量
231 kWh
現在の日射量
0 Wh/㎡
現在の外気温
3.0 ℃

(2024/12/10 23:15 更新)

eMMCでUbuntu Server | 技術メモ

SSDに構成したUbuntu ServerをeMMCにコピーして使えるようにします。

先ずはeMMCを有効化しておきます。

GPT形式のパーティショニング

NUCはUEFIによる起動も可能なことから、せっかくですのでGPT形式によるeMMCのパーティションを行います。

論理ボリュームの作成

$ sudo pvcreate /dev/mmcblk0p3
Physical volume "/dev/mmcblk0p2" successfully created
$ sudo vgcreate linux-vg /dev/mmcblk0p3
Volume group "linux-vg" successfully created
$ sudo lvcreate -l 100%FREE -n root linux-vg
Logical volume "root" created

論理ボリュームのフォーマット

$ sudo mkfs -t ext4 /dev/mapper/linux--vg-root
mke2fs 1.42.9 (4-Feb-2014)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
216000 inodes, 863232 blocks
43161 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=884998144
27 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

ファイルの同期

SSDの内容をeMMCにコピーします。ファイルのコピーは通常cpを使いますが、こういう場面ではrsyncが便利です。

rsyncはファイルの権限やリンクも含めて上手い具合に揃えてくれます。

$ sudo mount /dev/mapper/linux--vg-root /mnt
$ sudo rsync -aHx / /mnt
$ sudo mount /dev/mmcblk0p2 /mnt/boot
$ sudo rsync -aHx /boot/ /mnt/boot
$ sudo mount /dev/mmcblk0p1 /mnt/boot/efi

eMMCの/boot/efiの内容は作り直すので以下は不要です。

$ sudo rsync -aHx /boot/efi/ /mnt/boot/efi

設定ファイルの編集

マウントポイントの設定

eMMC用に設定ファイルの変更を行います。といっても必要なのはマウントポイントの規定値の設定だけで、具体的にはfstabの編集となります。

これを行わないと、eMMC側から起動しても一部SSD側のデバイスをマウントしてしまいます。

先ず、blkidの結果を完璧に暗記します。

$ sudo blkid

そして、fstabの記憶を頼りに内容を適宜変更します。

$ sudo vi /mnt/etc/fstab

無理なので。といってもメモするのも面倒なので。

blkidの結果をfstabの末尾に付け加えます。

$ sudo sh -c "blkid >> /mnt/etc/fstab"

後はvypを駆使して内容の変更を行います。

$ sudo vi /mnt/etc/fstab

イコールの後にスペースを入れないように注意します。また、付け加えたblkidの結果は不要なので削除するかコメントアウトしておきます。

Grubのインストール

chrootを使ってeMMCのディレクトリ構造を再現します。その際、chroot後にも参照が必要なディレクトリを予めバインドしておきます。

仮想的に作り出したeMMCの起動環境でgrub-install及びupdate-grubを行います。

$ for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
$ sudo chroot /mnt
# grub-install /dev/mmcblk0
# update-grub
# exit

なお、kernelやinitrdは既にrsyncでeMMCにあるので、上記の仮想環境ではなく、Grubから手動でeMMC側を起動させて、そこでgrub-install及びupdate-grubを行うことも可能です。

UEFIの登録

起動時にF10を押すことによりSSD又はeMMCいずれかのUEFIを選べるようにし、次のような規則で起動するようにするためにUEFIの登録を行います。

  • SSDのUEFI→SSDのGrub→SSDのkernel及びinitrd
  • eMMCのUEFI→eMMCのGrub→eMMCのkernel及びinitrd

既にGrubとkernel及びinitrdの対応関係は出来ていますので、ここではUEFIとGrubの関連付けを行います。

sudo efibootmgr -c -d /dev/sda -l "\EFI\ubuntu\grubx64.efi" -L "SATA"
sudo efibootmgr -c -d /dev/mmcblk0 -l "\EFI\ubuntu\grubx64.efi" -L "eMMC"

正しく設定出来ているか確認します。

sudo efibootmgr -v

表示されるデタラメのような文字列はPART ENTRY UUID(Partition unique GUID)です。これはblkidをオプションなしで実行した際のUUIDとは異なります。

対応関係に誤りがないか確認します。

sudo blkid -p -s PART_ENTRY_UUID /dev/sda1
sudo blkid -p -s PART_ENTRY_UUID /dev/mmcblk0p1

なお、何らかの誤りによりUEFIからの起動が出来なくなってしまった場合は、一時的にUSB起動ディスクのGRUBを使う方法があります。