さわらブログ

さわら(@xhiroga)の技術ブログ

ProxmoxでWebコンソールからストレージをマウントする(zfs, ext4)

TL;DR

Webコンソールからクラスターを選択し、Disks > ZFS または Disks > Directoryを選び、それぞれ Create: ZFS または Create: Directory で作成することができます。

動機

ターミナルからストレージをマウントしようとすると大変ですよね。パーティションは慎重にやらないといけないし、マウントするパスは迷うし、自動マウントの設定も必要だし...

ProxmoxではWebコンソールからストレージをマウントすることができます。

手順

いずれもクラスター内のメニューから作成できます。なお、DirectoryかZFSかによってマウントパスが違いました。

ZFS の作成

クラスター選択 > Disk > ZFS > Create: ZFS から作成できます。

Create: Directoryのファイルシステムの選択肢にはzfsが無いので注意です。

Create: ZFSを選択

Create: ZFS

ちなみに Kingston の2TB なので k2 という名前でマウントしています。Mount K2に引っ掛けたジョーク... 以降の手順も同様です。

作成時のOutputです。

The operation has completed successfully.
# /sbin/zpool create -o ashift=12 k2 /dev/nvme0n1p1
# /sbin/zfs set compression=on k2
# systemctl enable zfs-import@k2.service
Created symlink /etc/systemd/system/zfs-import.target.wants/zfs-import@k2.service -> /lib/systemd/system/zfs-import@.service.
TASK OK

作成後のWebコンソールと、ターミナルから見たパーティション・マウントパスです。

root@pve:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:0    0 931.5G  0 disk 
|-nvme1n1p1 259:1    0  1007K  0 part 
|-nvme1n1p2 259:2    0   512M  0 part 
`-nvme1n1p3 259:3    0   931G  0 part 
nvme0n1     259:4    0   1.8T  0 disk 
|-nvme0n1p1 259:5    0   1.8T  0 part 
`-nvme0n1p9 259:6    0     8M  0 part
root@pve:~# findmnt
TARGET                        SOURCE           FSTYPE     OPTIONS
/                             rpool/ROOT/pve-1 zfs        rw,relatime,xattr,noacl
|-/sys                        sysfs            sysfs      rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/security      securityfs       securityfs rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/cgroup            cgroup2          cgroup2    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/pstore            pstore           pstore     rw,nosuid,nodev,noexec,relatime
| |-/sys/firmware/efi/efivars efivarfs         efivarfs   rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/bpf               none             bpf        rw,nosuid,nodev,noexec,relatime,mode=700
| |-/sys/kernel/debug         debugfs          debugfs    rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/tracing       tracefs          tracefs    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/fuse/connections  fusectl          fusectl    rw,nosuid,nodev,noexec,relatime
| `-/sys/kernel/config        configfs         configfs   rw,nosuid,nodev,noexec,relatime
|-/proc                       proc             proc       rw,relatime
| `-/proc/sys/fs/binfmt_misc  systemd-1        autofs     rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=33881
|-/dev                        udev             devtmpfs   rw,nosuid,relatime,size=14284768k,nr_inodes=3571192,mode=755,inode64
| |-/dev/pts                  devpts           devpts     rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
| |-/dev/shm                  tmpfs            tmpfs      rw,nosuid,nodev,inode64
| |-/dev/hugepages            hugetlbfs        hugetlbfs  rw,relatime,pagesize=2M
| `-/dev/mqueue               mqueue           mqueue     rw,nosuid,nodev,noexec,relatime
|-/run                        tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=2863444k,mode=755,inode64
| |-/run/lock                 tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=5120k,inode64
| |-/run/rpc_pipefs           sunrpc           rpc_pipefs rw,relatime
| `-/run/user/0               tmpfs            tmpfs      rw,nosuid,nodev,relatime,size=2863440k,nr_inodes=715860,mode=700,inode64
|-/k2                         k2               zfs        rw,xattr,noacl
|-/rpool                      rpool            zfs        rw,noatime,xattr,noacl
| |-/rpool/ROOT               rpool/ROOT       zfs        rw,noatime,xattr,noacl
| `-/rpool/data               rpool/data       zfs        rw,noatime,xattr,noacl
|-/var/lib/lxcfs              lxcfs            fuse.lxcfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other
`-/etc/pve                    /dev/fuse        fuse       rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other

ext4, xfs の作成

クラスター選択 > Disk > ZFS > Create: Directory から作成できます。

Create: Directory を選択

Create: Directory

作成時のOutputです。

The operation has completed successfully.
# /sbin/mkfs -t ext4 /dev/nvme0n1p1
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks:      4096/488376320  2625536/488376320 79171584/488376320244322304/488376320412094464/488376320                   done                            
Creating filesystem with 488376320 4k blocks and 122101760 inodes
Filesystem UUID: 32b206d1-d332-423f-b49f-e95318530dd7
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848

Allocating group tables:     0/14905           done                            
Writing inode tables:     0/14905           done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:     0/14905           done

# /sbin/blkid /dev/nvme0n1p1 -o export
Created symlink /etc/systemd/system/multi-user.target.wants/mnt-pve-k2.mount -> /etc/systemd/system/mnt-pve-k2.mount.
TASK OK

作成後のWebコンソールと、ターミナルから見たパーティション・マウントパスです。

Directories

root@pve:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:0    0 931.5G  0 disk 
|-nvme1n1p1 259:1    0  1007K  0 part 
|-nvme1n1p2 259:2    0   512M  0 part 
`-nvme1n1p3 259:3    0   931G  0 part 
nvme0n1     259:4    0   1.8T  0 disk 
|-nvme0n1p1 259:5    0   1.8T  0 part /mnt/pve/k2
`-nvme0n1p9 259:6    0     8M  0 part 
TARGET                        SOURCE           FSTYPE     OPTIONS
/                             rpool/ROOT/pve-1 zfs        rw,relatime,xattr,noacl
|-/sys                        sysfs            sysfs      rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/security      securityfs       securityfs rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/cgroup            cgroup2          cgroup2    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/pstore            pstore           pstore     rw,nosuid,nodev,noexec,relatime
| |-/sys/firmware/efi/efivars efivarfs         efivarfs   rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/bpf               none             bpf        rw,nosuid,nodev,noexec,relatime,mode=700
| |-/sys/kernel/debug         debugfs          debugfs    rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/tracing       tracefs          tracefs    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/fuse/connections  fusectl          fusectl    rw,nosuid,nodev,noexec,relatime
| `-/sys/kernel/config        configfs         configfs   rw,nosuid,nodev,noexec,relatime
|-/proc                       proc             proc       rw,relatime
| `-/proc/sys/fs/binfmt_misc  systemd-1        autofs     rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=33881
|-/dev                        udev             devtmpfs   rw,nosuid,relatime,size=14284768k,nr_inodes=3571192,mode=755,inode64
| |-/dev/pts                  devpts           devpts     rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
| |-/dev/shm                  tmpfs            tmpfs      rw,nosuid,nodev,inode64
| |-/dev/hugepages            hugetlbfs        hugetlbfs  rw,relatime,pagesize=2M
| `-/dev/mqueue               mqueue           mqueue     rw,nosuid,nodev,noexec,relatime
|-/run                        tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=2863444k,mode=755,inode64
| |-/run/lock                 tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=5120k,inode64
| |-/run/rpc_pipefs           sunrpc           rpc_pipefs rw,relatime
| `-/run/user/0               tmpfs            tmpfs      rw,nosuid,nodev,relatime,size=2863440k,nr_inodes=715860,mode=700,inode64
|-/mnt/pve/k2                 /dev/nvme0n1p1   ext4       rw,relatime
|-/rpool                      rpool            zfs        rw,noatime,xattr,noacl
| |-/rpool/ROOT               rpool/ROOT       zfs        rw,noatime,xattr,noacl
| `-/rpool/data               rpool/data       zfs        rw,noatime,xattr,noacl
|-/var/lib/lxcfs              lxcfs            fuse.lxcfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other
`-/etc/pve                    /dev/fuse        fuse       rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other

間違って作成した場合

ZFSとDirectoryどちらの場合でも、選択して More から Destroy を選ぶことで削除が可能です。

ZFS の削除

ZFS Pool k2 - Remove

Removed /etc/systemd/system/zfs-import.target.wants/zfs-import@k2.service.
wiping block device /dev/nvme0n1p1
/dev/nvme0n1p1: 8 bytes were erased at offset 0x0003b000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00029000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00028000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x0007b000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00069000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00068000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00066000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00065000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00064000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07bb000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a9000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a8000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a6000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a5000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a4000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07fb000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e9000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e8000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e6000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e5000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e4000 (zfs_member): 0c b1 ba 00 00 00 00 00
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.189003 s, 1.1 GB/s
The operation has completed successfully.
TASK OK

ext4, xfs の削除

Directory k2 - Remove

Removed /etc/systemd/system/multi-user.target.wants/mnt-pve-k2.mount.
wiping block device /dev/nvme0n1p1
/dev/nvme0n1p1: 2 bytes were erased at offset 0x00000438 (ext4): 53 ef
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.33387 s, 628 MB/s
The operation has completed successfully.
TASK OK

まとめ

増設したSSDをマウントすることができました。

NestJS Meetup Online #1を振り返って【アンケート分析】 #nestjs_meetup

NestJS Meetup運営のさわらです。

2022年3月18日にNestJS Meetup Online #1が開催されました!

nest-jp.connpass.com

Connpassでは約150名が登録、Youtube Liveは200名以上が視聴し、第一回としては成功と言えたのではないでしょうか。

本記事では第一回の様子を、Connpass、YouTubeGoogle Formのアンケートの3つから振り返ります。

ちなみに第二回はこちらからご参加いただけます!

nest-jp.connpass.com

TL;DR

  • まだまだイベントの存在を知らない人はいる。Connpassを使い倒して参加者を広げるべき
  • YouTubeアーカイブを見る人向けの配信画面の工夫を
  • 初心者〜上級者まで幅広く楽しいイベント内容に

Connpass

Connpassからは、イベント参加者の方がどんな媒体から登録してくださったかが分かります。

大まかに言って、Connpassからの流入4割・Twitterからの流入3割・その他がダイレクトやGoogle検索など、と見られます。

ページビューとユニークユーザーが比例しているのも面白いですね。「そんなイベントやってたんだ!?今知った!」というような、イベントを知らない人がまだまだいることが予想されます。

f:id:hiroga_cc:20220408213631p:plain
NestJS meetup Online #1 イベント統計

公開直後かイベント直前かでも流入経路が違います。公開直後はTwitterが最大の割合を占めています。

f:id:hiroga_cc:20220408213727p:plain
NestJS meetup Online #1 公開直後

しかし、当日が近づくとConnpassからの流入が増えることが分かります。また、Google検索から来る人がいることも伺えます。

f:id:hiroga_cc:20220408213808p:plain
NestJS meetup Online #1 開催当日まで

これらの分析結果から、以下のような洞察が得られるかもしれません。

  • イベント公開後はTwitterで告知をすべき。Google検索で上位にインデックスされる可能性も高まる。
  • Connpassからの流入は思った以上にあるため、イベントページにキーワードを配置するなどのConnpass向けSEOや、前回参加者への次回イベント告知メール送信などは有効である。
  • 統計を確認してユニークユーザーの伸びが頭打ちになるまでは告知に注力するべき。

YouTube Live

YouTube Studioでは、ライブ放送の分析を見ることができます。

Meetupの最大同時接続数は66人で、Connpass参加者の46%でした。また、当日以降もアーカイブが視聴され続けています。

イベント中は大きな人数の変動はなく、多くの参加者がイベントを視聴し続けてくださったことが分かります。

f:id:hiroga_cc:20220408215434p:plain
NestJS Meetup Online #1 YouTube Live

一方でチャットは登壇の開始・終了に限定され、ハッシュタグでのツイートのほうが優勢であることが伺えます。

StreamYardの設定次第ですが、ハッシュタグのツイートを画面に表示するようにすると、後から視聴する人がよりライブ感を楽しめるかもしれませんね。

思い切ってYouTube Liveのチャット欄を閉じてしまうのもいいかもしれません。

f:id:hiroga_cc:20220408220101p:plain
NestJS meetup Online #1 YouTube Live チャットメッセージ

Google Form アンケート

イベント後のアンケートには、29名の方が回答してくださいました。

NestJSとの関わりですが、仕事で利用している方が50%を超えている結果となりました。

個人的にそこまで普及しているのかと驚きました。また、次回アンケートでは詳細な技術スタック(エンジンやORMなど、NestJS周辺技術)についても聞いてみてもいいかもしれません。

f:id:hiroga_cc:20220408220400p:plain
NestJS meetup Online #1 NestJSとの関わり

参加者の職種としてはフルスタックエンジニアが半数以上となりました。NestJSらしい結果であると思います。

これを受けて、Connpassのページにフロントエンド向け・フルスタック向けのキーワードを散らすのもいいかもしれません(Next.js、モノリポ、etc...)

f:id:hiroga_cc:20220408220634p:plain
NestJS meetup Online #1 あなたの職種

一方でLTの満足度は4が最も多く、改善の余地が伺えます。

アンケートの感想には、理解できない部分が多かった、スライドの見づらさ、もっと色々な話を聞きたい、という要望が見られました。

#1 では登壇者が2名だけだったので、 #2 以降のイベントでは登壇者を増やし、内容も初心者〜上級者まで幅広く取るといいかもしれません。

例えば「なぜNestJSを選定したか?」などは、NestJSへの習熟度とは無関係に楽しめますね!

f:id:hiroga_cc:20220408220832p:plain
NestJS meetup Online #1 LTの満足度

まとめ

初のオンライン開催ということで手探り状態でしたが、多くの方に刺激を与えることができたのは良かったと思います。

#1 の反省を #2 で活かし、より良いイベントにしていきましょう!

#2 の登録は以下から行えます。ぜひご参加くださいませ!

nest-jp.connpass.com

書評 - スーパーユーザーなら知っておくべきLinuxシステムの仕組み

スーパーユーザーなら知っておくべきLinuxシステムの仕組みを読み進めています。まだ半分ほどですが、特に興味があったデバイスとブートに関する章を読み終えたので書評を書きます。

f:id:hiroga_cc:20220403195502j:plain
Linuxの仕組みの覚え書き

TL;DR

  • クラウドLinuxを触り、物理マシンデビューする人にオススメ
  • ハンズオンが多い
  • 読み飛ばしても構わない節が明示されている
  • Kindle版および、インプレスでPDF版が購入できる。

動機

自宅のProxmoxサーバーが再起動後に動かなくなりました。具体的には、ディスクにエラーがあり書き込みを要するすべての処理ができない状況。

(こちらがその問題です。どなたかコメントいただけると嬉しいです。) askubuntu.com

検索しようにも知識が足りない状況だったので、いい機会と思って勉強をはじめました。

手にとって

元々Twitterでの評判を聞いて「いつか読んでみようかな」という程度だったのですが、実際のトラブルの中で藁にもすがる思いで購入。

結果、まさに必要な本でした。 一番知りたかった物理パーティションとLVMの関係やファイルシステムの修復方法について現場の方の言葉で書かれているのがありがたかったのはもちろん、ブート時の仕組みやデバッグの上で役に立つコマンドまで、これまでおざなりにしてきた知識が詰め込まれている本です。

ハンズオンを推奨している点が推せます。一周目は遠慮なく読み飛ばしていいよという注意書きが至るところにある点も笑っちゃいましたが、読者のことを分かっているなと。

クラウドLinuxを触った経験があり、かつこれから自作PCを始めようという方には特にオススメできます。

バイス・ディスクとファイルシステムについて

パーティションファイルシステムの違いも知らず、LVMの名前も知らない状態だったのですが、本を読み色々落書きする中でいい感じに整理できました。

これまで私が混乱していた原因の一つが、Macbookのディスクユーティリティです。 この本では「パーティションファイルシステムの作成は別々にすべき」と語られていますが、ディスクユーティリティは一緒にやるんですよね。

ハンズオンに当たってはラズパイを用意しました。Macbookのディスク関連ユーティリティはLinuxとは異なっていたりコマンドがなかったりで困ったので。

f:id:hiroga_cc:20220403201331j:plain
ハンズオンで使った普通のラズパイ

Linuxカーネルの起動・ユーザー空間について

そもそもOSが起動する仕組みが分かっていなかったのですが、ログを見ても怖くない程度には理解できたと思います。

特に、BIOSがOSのバイナリを探す時点ではファイルシステムはロードされていない、というのは言われればそのとおりで、納得感がありました。

initについても、System Vなどの聞いたことある歴史的経緯をちょいちょい入れてくれるので頭に入りやすかったです。

まとめ

読み終わった後に振り返ると逆に何を知らなかったのか分からなくなる、身になる本でした。

後半にはネットワークの章もあり、読むのが楽しみです。

2021年に読んだ漫画約250冊のベスト10

2020年に引き続き、2021年も素晴らしい作品に出会えました。 人生に影響を与えたであろう順にトップ10を選んでいます。よかったら見てみて下さい。

1位 ク・ジョンイン - 秘密を語る時間

自分のトラウマやもやもやを言語化するのを手伝ってくれる、素晴らしい本でした。

幼い頃に性被害に遭った主人公が、その経験と向き合ってゆく話です。すでに一度ブログにも書いています。

hiroga.hatenablog.com

性被害について考えるきっかけを与えてくれた本でした。

2位 ヤマシタトモコ - 違国日記

2021年、10周くらい読んだと思います。両親を亡くした子どもと、その子を引き取ることになった叔母の話。

ヤマシタトモコ先生はBLをよく描いていらっしゃるようなのですが、そこで培った?他人同士の関係性が変わってゆく描写がとてもよいです。

現実世界で起きる社会問題も度々作中で取り上げられており(それも自然な形で)、こういう、問題があることを記して行く姿勢って良いなぁと思いました。

登場人物は皆さん好みですが、醍醐さんの影のある陽キャの感じとか好きです。

3位 小野佳苗 - しようよ

オムニバス形式で延々とセックスの話です。漫画版の佐伯ポインティと言っても過言ではない。

女性ってセックスについてこんな事考えているんだ〜、と面白く読めたので、「しようよ」前後である意味人生が変わりました。

4位 海野つなみ - 逃げるは恥だが役に立つ

ドラマで流行っているので敬遠していたのですが、いざ読んだらハッピーな気持ちになりました。

ドラマ新春スペシャルで社会問題山盛りだったので、原作準拠してるのかな?と心配になったのですが、いざ読んだら原作も社会問題山盛りでした。

ブコメ定期的に摂取していきたいですね。

5位 近藤聡乃 - A子さんの恋人

アラサーの若者たちが、恋と人間関係に奔走する話...なんですけど。これ上手く伝えるの難しいですね...

キャラクターの憎めなさ、人間らしさが素敵です。学園モノに近いかも知れないですね。

好きなエピソードはあいこの乱です。

6位 藤本タツキ - チェンソーマン

ご都合主義のないスプラッターバトル!人がどんどん死にます。

HUNTER X HUNTERが好きな人は好きなはずですね。

7位 藤本タツキ - ルックバック

京アニの放火から約1年後に書かれた作品。

漫画を描いて弔う、喪に服すやり方があるんだと感動しました。

8位 雁須磨子 - あした死ぬには、

更年期のお姉さんたちが主役の漫画。これに限らず、女性っていう知らない生き物を扱っている作品が好きですね。

9位 九井諒子 - ダンジョン飯

世界観の作り込みが素敵なファンタジー世界の漫画。異世界の料理はだいたい好きで、これ以外に空挺ドラゴンズハクメイとミコチも好き。

10位 ほったゆみ小畑健 - ヒカルの碁

Twitterの広告で懐かしくなって、久しぶりに読んだら泣いてしまった。昨年だけで5周くらい読んでいる。

まとめ

自分の知らない世界を漫画を通して知ることができる、というのが好きです。そういう意味で昨年はいい漫画にたくさん出会えました! 今年は漫画だけでなく、小説や映画も守備範囲にしてみようかしら。

書評 - Windowsインフラ管理者入門

個人的に仮想環境でWindowsの運用を始めたので、セキュリティやパフォーマンスの設定の基本を知るために読みました。 当初の目的は果たせなかったものの、むしろ業務で気になっていた・今後使いそうな知識がインプットできたのでよかったです。

f:id:hiroga_cc:20220217082312j:plain
Windowsインフラ管理者入門

TL;DR

  • 本書の内容はインストール・Active Directory設定・運用の3つに分かれる
  • インストールやActive Directoryの設定では独特な概念が多く、事前に単語を目にできたのは良かった
  • 浅く広くな内容であるとともに実践的なアドバイスも多く、特に運用で利用するツールは早速使ってみたい

f:id:hiroga_cc:20220217081337p:plain
Windowsインフラ管理者入門の構成

詳細

もともとはレジストリの編集について知りたくて本を購入したのですが、その点では期待とは違った本でした。

一方、Windows独特な概念を知れたのが良かったです。

例えば、Windowsの複雑なエディションやCAL・アクティベーション方法は複雑で、生兵法でやってしまわないようにと心がけました。 歴史的経緯にも触れており、さすが10年来の技術者の書いた本という感じです。 もっとも本書はWindows8までなので、Windows11の出ている現在では事情が違うかも知れません。

Active Directoryについても基本的な記述があり、今後関わる際に立ち戻って読もうと思いました。 ただ、いきなりActive Directoryの説明をされても、手元に触れる環境がないので実感はわきませんでした。テスト用環境の作り方など指南してほしかったのですが、それは専門書を求めます。

まとめ

業務でWindowsのインフラを管理する人向けの本でした。必要に応じて読み直します。

日本語校正ツールTomarigiをWindows 10で使う

青山学院大学の日本語表現法開発プロジェクトから誕生した日本語校正ツール「Tomarigi」をWindows10で使用しました。

f:id:hiroga_cc:20220110131711p:plain
Tomarigi 3 on Windows 10

いくつか躓いたポイントがあったのでまとめます。

TL;DR

  • MecabとCabochaはShift-JISで導入する
  • TomarigiのZipファイルはShift-JISとして解凍する
  • Unicode対応ではないプログラムの言語を設定する

MecabとCabochaはShift-JISで導入する

TomarigiのWebサイトに書いてあるとおり、※デフォルトのインストールオプションにて(文字コードは、Shift_JIS) インストールする必要があります。

TomarigiのZipファイルはShift-JISとして解凍する

TomarigiのアプリはShift-JISで圧縮されているので、同様にShift-JISで解凍する必要があります。

私はWSLでUbuntuを起動して対処しました。

f:id:hiroga_cc:20220110132448p:plain
Unzip by Ubuntu

cd /mnt/Users/hiroga/Downloads/
unzip -O sjis Tomarigi0325.zip

Unicode対応ではないプログラムの言語を設定する

職場の先輩に指摘されて分かったのですが、Unicode以外の文字を何として扱うか明示的に指定する必要がありました。

以下の通り、コントロール パネル > 時計と地域 > 地域 > 日付、時刻、数値形式の変更 > 管理 > Unicode対応ではないプログラムの言語 から 日本語 を選択肢ます。

f:id:hiroga_cc:20220110132127p:plain
Unicode対応ではないプログラムの言語を日本語に設定

まとめ

文字コードの扱いをShift-JISに統一することで起動することができました。

Windowsでホームディレクトリがメールアドレスの先頭5文字になってしまったのを直す

TL;DR

  • Windowsに初手Microsoftアカウントでログインしたら、ホームディレクトリがメールアドレスの先頭5文字になってしまった
  • レジストリの修正とフォルダ名の修正だけでは不十分
  • OneDriveからサインアウトしておくこと、Quick Accessのピンを削除しておくことも必要

動機

WindowsMicrosoftアカウントでログインすると、ホームディレクトリの名前がメールアドレスの先頭5文字になってしまうようです。

Windowsに勧められるがままにアカウントを作成したら、なんだか途切れてほしくないところで切れて困りました。

f:id:hiroga_cc:20220109204246p:plain
Quick accessも修正が必要

ちなみに、他にも困っている人はそこそこいるようでした。

https://answers.microsoft.com/ja-jp/windows/forum/all/windows-10-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC/59611244-f252-4bcf-bf32-fcee1e4de59a

修正方法

基本的に以下のブログの勧めに従ったものの、いくつか事前にやっておけばよかったポイントがあります。

pc-karuma.net

Quick Accessの削除

f:id:hiroga_cc:20220109205412p:plain
Frequent folders

Quick Accessのショートカットがホームディレクトリ内のOneDriveのフォルダを指していると、エクスプローラーを開くたびに警告が出てしまいます。

Unpinするか、手順終了後にショートカットのLocationを変更すると良さそうです。

OneDriveの停止

Setting > Account > Unlink this PC でPCの接続を外しておいたほうが良いです。記憶が定かではないものの、確か同期するフォルダが見つからないことの警告が出たような...?

f:id:hiroga_cc:20220109205031p:plain
Setting > Account > Unlink this PC

まとめ

始めはローカルアカウントでログインしつつ、一通り設定が終わってからMicrosoftアカウントでログインするのが良さそうです。