9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

System76 の Serval WS を 使ってみた

Last updated at Posted at 2019-09-11

始めに

アメリカの会社 System76 から、Ubuntu OS の Serval WS という ノートパソコン を購入しました。

今回は購入の背景から、セットアップをするところまで、気付いたことをメモしていきます。

当記事については、個人のメモを目的としてます。

購入やセットアップなど自己責任でお願い致します。

・購入に至るまでの背景
・購入
・セットアップ
・モディファイヤキー
・Visual Studio Code の cache ファイル を 削除 する
・.bashrcファイル と .bash_profile について

1. 購入に至るまでの背景

1-1. これまで

自宅では Panasonic Let's note という ノートパソコンを使っていました。

OS は Windows7 でした。

Ubuntu を Windows7上 の ゲストOS として、 仮想マシン Oracle VM VirtualBox で 動かしていました。

1-2. 競技プログラミング

競技プログラミングが好きで、コンテストに参加しています。

競技プログラミングでは、問題を解く速さを競い合います。

問題の解き方を考えて、それをプログラミングします。

プログラムが実際の入力値に対して、出力値が想定通りか確認し、提出します。

1-3. プログラミング言語

コンテストでは、解き方を考えたり、その解き方が正しいか確認することに時間を使います。

プログラミングには時間をかけない工夫が必要です。

参加者の多くは、得意とするプログラミング言語があり、それで勝負します。

1-4. プログラミング言語の使い分け

一部の参加者は、コンテスト内で使用する言語を変えたりします。

簡単な問題 (インプット件数が少ない問題) では、Python を使用します。

コーディングのステップ数が少なく、記述が簡潔になる為です。

難しい問題 (インプット件数が多い問題) では、C++ や Java を使います。

Python では、実行時間がコンテストの制限時間 (数秒) を超えることがある為です。

1-5. 苦労すること

コンテスト内で使用する言語を変える場合、環境や操作に苦労します。

プログラムのコーディング、デバッグ、実行は、使用する言語に左右されるからです。

言語ごとに違う違うオペレーションをするよりは、統一された環境で望みたい気持ちがあります。

1-6. Visual Studio Code

Visual Studio Code は 最近大変便利になりました。

コーディング や シンタックスチェック や デバッグ。

C++、Java、Pythonどれでも、比較的簡単な統一されたオペレーションで出来ます。

動作環境、Windows や Macintosh、Linux まで幅広く使えます。

1-7. 競技プログラミングツール

競技プログラミングツールの導入により作業負荷が軽減します。

自分の作成したプログラムが実際の入力値に対して、出力値が想定通りか確認する作業が半自動化されます。

競技プログラミングツール は コンテストページから、入力例と出力例を取り込みます。 (スクレイピング)

kimiyukiさん の online-judge-tools を 当記事にて紹介致します。

当ツールの登場当初は、Linux のみ使用可能でした。

現在はさらに進化して Windows でも使用できるようです。

今回、自宅の端末の OS を Windows から Linux に 乗り換えようと思った動機の一つです。

1-8. Ubuntu OS の ノートPC にしよう

Ubuntu OS の ノートPC にするだけなら、OSを自分でインストールすれば良い。

Ubuntu OS を プリインストール している ノートPC を調べたところ、System76 がありました。

System76 は、Pop!_OS という Ubuntu に基づいた独自の Linux ディストリビューションを作成しています。

Ubuntu に対するこだわりが感じられました。

この会社 から ノートPC を購入することにしました。

2. 購入

2-1. DESIGN + BUY

System76 Homepage に アクセス します。

ノートPC は laptops です。

機種の画像をクリックすると、その機種の紹介やスペックが掲載されています。

画面右上、DESIGN + BUY をクリックすると以下を選択できます。
・Operating System
・Display
・Graphics
・Processor
・Memory
・OS Drive
・Additional M.2 SSD Drive
・1st 2.5″ Drive
・2nd 2.5″ Drive
・Wireless AC
・Accessories
・Laptop Bag
・Warranty

この他、以下がありますが、日本からの購入では選択できませんでした。
・Shipping Coverage
・Assembly Service
・Recycling

以下を選択しました。

Item Select
Model Serval WS 15"
Operating System Ubuntu 18.04 LTS (64-bit)
Display 15.6" Matte 1080p FHD Wide View Angle Matte Display
Graphics 6 GB GDDR6 RTX 2060 w/ 1920 CUDA Cores
Processor 5 GHz i9-9900K (3.6 up to 5 GHz – 16MB Cache – 8 Cores – 16 Threads)
Memory 64 GB Dual Channel DDR4 at 3000MHz (4× 16GB)
OS Drive 500 GB NVMe Seq Read: 3,500 MB/s, Seq Write: 3,200 MB/s
Additional M.2 SSD Drive 500 GB NVMe Seq Read: 3,500 MB/s, Seq Write: 3,200 MB/s
Wireless AC WiFi up to 867 Mbps + Bluetooth
Accessories Extra Battery
330 Watt Extra Charger
External USB DVD-RW Drive
Laptop Bag 17″ Messenger Bag by Timbuk2
Warranty 3 Year Limited Parts and Labor Warranty

Accessories は 望むならば 選択します。

Battery、Charger は もともと 1セット は付いているので、予備用で選択しました。

DVD-RW Drive は PC内蔵 ではないので、選択しました。

Charger は 日本での ACアダプタに近いですが、ビックサイズ 198×98×43(mm) です。

届いた時にびっくり、がっかりしましたが、もう慣れました。

差込プラグの形状が3ピンなので、3ピンを2ピンにするアダプタを別途購入しました。
・エレコム 電源タップ 変換アダプタ 3ピン→2ピン アース付きコンセント T-H32

画面下部 ADD TO CART を クリック します。

内容を確認して CHECKOUT を クリック します。

このとき System76 の アカウント が必要となるので登録します。

輸送 は UPS。

安いプランと高いプランが、画面上提示がありましたが、高いプランを選択しました。

自宅にはクロネコヤマトで届きました。

手数料を支払いました。

2-2. 決済

支払はクレジットカードも使えます。すんなりいけば画面で完結します。

私の場合、「決済金額」がカードの「ショッピング枠」を超えてしまった為、使えませんでした。

画面に contact serviceというボタンがあります。

System76 との チャット画面 (ファイル添付可能) が表示されます。

以下を伝えて、銀行口座を教えて頂き、銀行からの一括払いとしました。

Google翻訳を使いました
The current card cannot be used for payment.
Is it possible to make a lump sum payment from my bank to your bank?
I would like to know your bank account for this purpose.

2-3. 銀行

銀行窓口で海外送金と伝えました。

現金はテロ対策などの観点から、お受けできないと伝えられました。

その為、送金は自分の銀行口座から直接相手先銀行口座に振込となりました。

銀行口座申込時の印鑑、通帳が必要となります。

身分証明として、運転免許書等とプラスでマイナンバーカード(通知書はがき可)が必要です。

マイナンバーまでは用意してなかったのでマイナンバーカードの通知はがきを自宅に取りに帰りました。

「外国送金受取書 外国送金受付書 (兼送金手数料受領書)」を記入します。

全てアルファベット大文字で記入します。

支払銀行手数料負担区分は「依頼人負担」です。

銀行コード は SWIFT CODE のみを使います。

私は SWIFT CODE と合わせて 念の為 Routing Number も記入しました。

ところが Routing Number で うまく行かないと、後日銀行の方から電話がありました。

相手先銀行 と System76 それぞれについて、国名と州名を記入します。

USA は大丈夫だろう、州名は事前につづりを調べておくと慌てずに済みます。

受取人への通知事項として、念の為、Order ID と 受付日 を記入します。

受取人への通知事項
Order ID:#実際のOrder ID Date:受付日の月/受付日の日/受付日の年4桁

送金目的を記入します。

送金目的
ノートPC購入

別途「個人番号提供書」を記入しました。

2-4. 所要日数

サイトで申込から 13日間でした。

注文処理の完了までに時間がかかりましたが、組立開始からは早かったです。

以下、日本時間での経緯です。

2019/08/11(日) 13:00 サイトで申し込み、カード使用失敗
2019/08/12(月) 17:00 銀行口座等を教えて頂くよう依頼
2019/08/13(火) 00:00 銀行口座等の情報を受領
2019/08/13(火) 11:00 銀行窓口での手続き完了
2019/08/20(火) 03:00 注文処理の完了、組立開始の連絡を受領
2019/08/24(土) 12:00 クロネコヤマトから自宅にノートPC到着

3. セットアップ

3-1. 使用機器

ダウンロードファイルや重要なメモ、作成したiso ファイル などを 外付けHDD に保存する。
リカバリディスクの作成などの目的で、外付けDVD-RW Drive を使用して DVDを焼く。

Maker Device Description
System76 Serval WS 15" ノートPC 15インチ (System76 より購入)
I-O DATA HDCZ-UTL4KB 外付け HDD 4TB (別途、家電量販店で購入)
ASUS SDRW-08D2S-U 外付け DVD-RW Drive (System76 より Accessories として購入)

3-2. Serval WS 15" 内蔵SSD

システム領域 (/) と データ領域 (/home) を 別のSSD とする。
合計 1 TB。

Maker Device Description
Samsung SSD 970 EVO Plus 500GB OS Drive
Samsung SSD 970 EVO Plus 500GB Additional Drive

3-3. パーティション

以下の配分でパーティションを切る。

nvme0n1 (OS Drive)

Device Type Mount point Format Size
nvme0n1p1 efi 512 MB
nvme0n1p2 ext4 / Yes 173 GB
nvme0n1p3 ext4 /usr Yes 260 GB
nvme0n1p4 ext4 /var Yes 50 GB
nvme0n1p5 swap 16 GB

nvme1n1 (Additional Drive)

Device Type Mount point Format Size
nvme1n1p1 ext4 /home Yes 500 GB

余談、OS Drive と Additional Drive は、使用者がそのように決めているだけで
実際はシリアルナンバーでしか見分けは付かない。

論理名である nvme0n1 と nvme1n1 は
OS起動時に先にマウントされた方が nvme0n1、後にマウントされた方が nvme1n1 となる。

3-4. OS インストール と パーティション

Serval WS の電源を入れると、そのまま Ubuntu のインストールが始まる。

Ubuntu OS は インストール時に、パーティションを切ることができるが
届いたノートPC そのままの状態でインストールを進めた場合
パーティションを切る画面が表示されない。

後から Gparted などで切ることができるようなのだが
UEFI BIOS では パーティションを切ることが難しい
具体的には、パーティション自体は切れるが、Mount point を指定することが出来なかった。

なお、届いたノートPCには説明書の冊子は無く
リカバリディスク や Ubuntu OS の DVDディスク等は無かった。

3-5. ライブUSBメモリを作成

System76 support に アクセスします。

「Create and Use Bootable Media from Other OS's」リンクを押す。
「Make Bootable drive」「For Ubuntu/Pop!_OS」の
「Ubuntu 18.04 here」のリンクを押す。

リンク先が切れていて、「Not Found」となるが、URLから
「ubuntu-18.04.2-desktop-amd64.iso」であることが分かる。

インターネットで探す「Index of /releases/18.04.2 - Ubuntu® Old Releases」から
ubuntu-18.04.2-desktop-amd64.iso を ダウンロードする。

ダウンロードしたファイルのチェックサムを
同ページの「MD5SUMS」なり「SHA256SUMS」で確認する。

System76 support に アクセスします。

「Create and Use Bootable Media from Other OS's」リンクを押す。
「For Windows/MacOS」に記載されている手順に従い
Windowsマシンでユーティリティソフト「Etcher」で USB を作成する。

サイズが 1.85 GB ある。
サイズに余裕のある USB を使用する。

3-6. ライブUSBメモリより Ubuntu OS を インストール

作成したライブUSBメモリを Serval WS にさして
電源ボタンを押した直後にF7ボタンを押す。

USBメモリを選択する。

GNU GRUB の 白黒の画面が表示される。

「Install Ubuntu」を選択する。

画面に従って、インストールを進める

Title Action
Welcome (言語選択) English
Keyboard layout (左) English(US) (右) English(US)
Wireless Connect to this network を選択する
SSID を 選択する
Password を 入力する (13桁の英数字)
Updates and other software そのまま Continue
Installation type Something else (これがやりたかった、パーティション)
「3-3. パーティション」 の 表に従い、パーティションを切る
Where are you? そのまま Tokyo
Who are you? Your name に 「shibata」
Password を入力
Require my password to log in を選択
Installation Complete USBメモリを取り外して Restart Now

ここで画面の表示に乱れがあり、ログイン画面がなかなか表示されない。

おそらく OSの上書きインストールで グラフィック などに必要なプログラムが
まだインストールされていない為だ。

電源長押しで電源を落とし、また電源を入れるを
数回やっているうちにログイン画面が表示された。

3-7. Ubuntu OS にログインして必要な設定

画面中央「What's new in Ubuntu」右にある緑色の「Next」ボタンを押す。

「Livepatch」、「Set Up Livepatch」ボタンを押す。

「Help improve Ubuntu」、「Yes, send system info to Canonical」を選択する。

System76 support に アクセスします。

「Install Ubuntu On Your System76 Computer」リンクを押す。
表示されたページの以下のセクションに記載のある全てのコマンドを端末で実行する。

「Install System76 Driver」
「NVIDIA Graphics」
「If ‘nouveau.modeset=0’ Was Used」

端末は 「Ctrl」キーと「Alt」キーを押しながら、「T」キーを押すと起動する。

次に「XDGスタイル」と「Nautilusパス表示」

XDG_Nautilus.sh
LANG=C xdg-user-dirs-update --force
gsettings set org.gnome.nautilus.preferences always-use-location-entry true

System76 support に アクセスします。

「Watch Videos and Play Music (MP3, DVD, etc.)」リンクを押す。
表示されたページの以下のセクションに記載のある全てのコマンドを端末で実行する。

「Install Packages」「Copy and paste the following line for Ubuntu/Pop 18.04」
1行のコマンドを端末で実行する。

「Setup DVD Playback」
1行のコマンドを端末で実行する。

「Useful Programs」
1行のコマンドを端末で実行する。

画面の左下にある「Apps button」を押す。

検索小窓で「Software」と入力、検索する。

小包と地球のアイコンが表示されるのでクリックする。

「Ubuntuのソフトウェア」タブ
以下にチェックが入っていない場合は、チェックを入れる。

・「Canonicalによってサポートされる〜(main)」
・「コミュニティによってサポートされる〜(universe)」

「他のソフトウェア」タブ
以下にチェックが入っていない場合は、チェックを入れる。

・「Canonical パートナー」
・「Canonical パートナー(ソースコード)」

閉じるボタンを押した時に、更新が必要なメッセージが出たら、更新する。

次に「パッケージのアップグレード」

upgrade.sh
sudo apt update && sudo apt upgrade -y

次に「パネルの日付表示」

show-date.sh
gsettings set org.gnome.desktop.interface clock-show-date true

次に「警告音 (たぬきの腹づつみのようなポンという音) の抑止」

画面右上、「逆三角ボタン」、「工具ボタン」を押す。
設定画面が表示される。
「サウンド」を選択する。
出力の音量を「オフ」にする。

次に「日本語」

japanese.sh
sudo apt install language-pack-ja-base language-pack-ja ibus-mozc
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
sudo apt install manpages-ja manpages-ja-dev

画面右上、「逆三角ボタン」、「工具ボタン」を押す。
設定画面が表示される。
「地域と言語」を選択する。

言語(L) を 「日本語」
フォーマット(F) を 「日本」

入力ソースを 「日本語(Mozc)」にする。
「英語(en)」は「−」で削除する。

画面右上の「あ」と表示されている右横の逆三角ボタンを押す。

「ツール」、「プロパティ」を選択する。

キー設定の選択で「編集...」ボタンを押す。

入力キーで並び替え、「Ctrl Space」が 2 件ある。

モード「変換前入力中」と「変換中」で、「編集」「選択されたエントリーを削除」。

同じく入力キーで並び替え、「Hankaku/Zenkaku」が 4 件ある。

モード「変換前入力中」と「変換中」と「直接入力」と「入力文字なし」で
「Hankaku/Zenkaku」を三回クリック。

「割り当てるキーの入力:」で「Ctrl」キーを押しながら「スペース」キーを押す。

「OK」ボタンを押す。

後ほど再起動後に「Ctrl」キーを押しながら「スペース」キーを押すと
ひらがなと直接入力が切り替えられるようになる。

ログオフではなく、手動で再起動する。
画面右上、「逆三角ボタン」、「電源ボタン」、「電源オフボタン」

起動時に以下のメッセージが表示される。

「標準フォルダの名称を現在の言語に合わせて更新しますか?」
※現在のフォルダ名「Desktop」、新しいフォルダ名「デスクトップ」になっている
「次回から表示しない」にチェックを入れる。
「古い名前のままにする」ボタンを押す。

3-8. その他のソフトウェア

DVDを焼く、Xfburn を入れる。

install_Xfburn.sh
sudo apt update
sudo apt install xfburn

システムのバックアップやリストアをする、Timeshift を入れる。

install_Timeshift.sh
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt update
sudo apt install timeshift

プログラミング言語を入れる。
Visual Studio Code Remote Development(SSH) を使って C++、Java、Python を試してみた

やることは同じ。

各言語の「インストール 確認」をまず実施。

入っていない言語は Java と Clang-format だけだった。

install_Java.sh
sudo apt-get install openjdk-8-jdk

which java
java -version

which javac
javac -version

# .bashrc の編集
# vi 操作はインターネット上の他の情報を参照下さい。
vi ~/.bashrc

# vi で 末尾 に以下の4行を追記。(コメントの#は消して追記下さい)
# JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
# export JAVA_HOME
# PATH=$PATH:$JAVA_HOME/bin
# export PATH

# vi で追記の保存が完了したら実行
source ~/.bashrc
install_clang-format.sh
sudo vi /etc/apt/sources.list

# vi で 末尾 に以下の2行を追記、保存。(コメントの#は消して追記下さい)
# deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main
# deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic main

# パッケージを更新
sudo apt update

# 失敗する
# Googleで検索「ubuntu sudo apt-key adv」
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421
# sudo apt update

sudo apt install clang-format-11

cd /usr/bin

# clang-format の bin シンボリックリンク

# clang-format の apt install を 実行した時に clang-format-11 にリンクされている
# sudo ln -nfs ../lib/llvm-11/bin/clang-format clang-format-11

# clang-format-11 を clang-format として実行できるようにする
sudo ln -nfs clang-format-11 clang-format

Visual Studio Code を入れる。

.debファイルをダウンロード。

ダウンロードした .debファイル を apt install。

install_visual_studio_code.sh
cd /home/shibata/Downloads
sudo apt install ./code_1.38.0-1567547996_amd64.deb 

フォントを入れる。

install_font.sh
sudo apt install -y fonts-ricty-diminished 

3-9. 外付けHDD を 初期化

4TB の 外付けHDD 「HDCZ-UTL4KB」の初期化を行う。

「Apps button」を押す。

検索小窓で「disks」と入力する。

「ディスク」というアイコンをクリックする。

4.0 TB ハードディスクを選択。

画面右上、三本線のバーガーメニューを押す。

「ディスクを初期化」を選択

Title Action
消去(E) 既存のデータを上書きしない(クイック)
パーティション(P) 新しいシステムと2TBを超えるハードディスクで互換(GPT)

上記を選択し、「初期化」ボタンを押す。

ボリュームにある歯車ボタンを押す。

「パーティションを初期化」を選択。

Title Action
ボリューム名(N) 「HDCZ-UTL4KB」と入力
消去(E) 「オフ」を選択
タイプ Linux 用 の内蔵ディスクとして使用する (Ext4)(I)

画面右上「次へ」ボタンを押す。

「警告:ボリュームにあるすべてのデータが失われます」というメッセージが表示される。

「初期化」ボタンを押す。

3-10. 装置構成図

パーティション後の装置構成を図にまとめた。
fig.1 Device configuration diagram

3-11. Clonezillaを使う

リカバリディスクの作成を行う。

Clonezilla というソフトウェアを使う。

Clonezilla は Ubuntuベース と Debianベース がある。

Ubuntuベースを使用する。

Clonezilla の isoファイル を ダウンロード し、Xfburn で DVD に焼く。
clonezilla-live-20190707-disco-amd64.iso

DVD メディア は データ用 4.7 GB DVD-R を使う。

3-12. Clonezilla ディスクイメージ を作成

1つの SSD に対して、1つの Clonezilla ディスクイメージ を作成する。
複数の Clonezilla ディスクイメージ を作成する場合、以下を繰り返す。

No Option Screen Action
1 Clonezilla DVDを入れ、電源ON、すぐにF7を長押し
2 Prease select boot device: 「UEFI: ASUS SDRW-08D2S-U B911」
3 *Clonezilla live (Default settings, VGA 800×600) Enter
4 ja_JP.UTF-8 Japanese / 日本語 Enter
5 keep デフォルトのキーボードレイアウト(英語キーボード)を維持 Enter
6 Start_Clonezilla Clonezilla を開始します Enter
7 device-image ディスク/パーティション⇔イメージ Enter
8 local_dev ローカルディスク(例:ハードディスク、USBドライブ)をマウント Enter
9 Enter
10 /dev/nvme0n1
11 /dev/nvme1n1
12 /dev/sda
13 Ctrl-C
14 sda1 Enter
15 Clonezilla Enter
16 v1 Enter
17 TABで<Done>選択 Enter
18 Beginner 初心者モード:デフォルトオプションを了解 Enter
19 savedisk ローカルディスクをイメージに保存 Enter
20 2019-09-09-01-img Enter
21 nvme0n1 Spaceを押して選択 Enter
22 -sfsck 元ファイルシステムのチェック/修復をスキップする Enter
23 はい、保存イメージをチェックします Enter
24 -senc イメージを暗号化しない Enter
25 -p poweroff シャットダウン Enter
26 本当に続けてもよろしいですか? y Enter
27 DVD Eject Enter
28 Enter
29 電源が落ちる

3-13. Clonezilla ディスクイメージから iso ファイル を作成

1つの Clonezilla ディスクイメージ から 1つの iso ファイル を作成する。
複数の iso ファイル を作成する場合、以下を繰り返す。

「Clonezilla ディスクイメージ を作成」
「Clonezilla ディスクイメージから iso ファイル を作成」
両者とも No.18 まで手順は同じ。

ポイントはどちらも手順の中で「保存先」の指定を先に行っていることだ。

画面の日本語が分かりにくいが、何度か試していると慣れる。

No Option Screen Action
1 Clonezilla DVDを入れ、電源ON、すぐにF7を長押し
2 Prease select boot device: 「UEFI: ASUS SDRW-08D2S-U B911」
3 *Clonezilla live (Default settings, VGA 800×600) Enter
4 ja_JP.UTF-8 Japanese / 日本語 Enter
5 keep デフォルトのキーボードレイアウト(英語キーボード)を維持 Enter
6 Start_Clonezilla Clonezilla を開始します Enter
7 device-image ディスク/パーティション⇔イメージ Enter
8 local_dev ローカルディスク(例:ハードディスク、USBドライブ)をマウント Enter
9 Enter
10 /dev/nvme0n1
11 /dev/nvme1n1
12 /dev/sda
13 Ctrl-C
14 sda1 Enter
15 Clonezilla Enter
16 v1 Enter
17 TABで<Done>選択 Enter
18 Beginner 初心者モード:デフォルトオプションを了解 Enter
19 recovery-iso-zip リカバリ用のclonezilla_Liveディスクを作成 Enter
20 2019-09-09-01-img Enter
21 nvme0n1 Spaceを押して選択 Enter
22 はい、リストア前にイメージを確認します。 Enter
23 -p poweroff シャットダウン Enter
24 ja_JP.UTF-8 Japanese / 日本語 Enter
25 None Enter
26 iso CD/DVD用のISOファイルを作成 Enter
27 Enter
28 y Enter
29 poweroff 電源OFF Enter
30 DVD Eject Enter
31 Enter
32 電源が落ちる

3-14. iso ファイル を リカバリディスク として DVD に焼く

DVD メディア は 片面二層 (データ用 8.5 GB DVD-R DL) を使う。
1つの iso ファイル を 1枚の DVD メディア に焼く。

No Screen Action
1 DVDドライブ の USB を PC にさす
2 DVDドライブ に 新しい DVD メディア を入れる
3 イメージを焼く 用意された編集物(ISO ファイルなど)を焼き込みます Enter
4 焼き込むイメージ /media/shibata/HDCZ-UTL4KB/Clonezilla/v1/clonezilla-live-2019-09-09-01-img.iso Enter
5 イメージを焼く Enter

3-15. リカバリディスク から復元する

複数の SSD に対して復元する場合に、先に復元した SSD を誤って上書きしないように
復元の際には、末尾に表示される SSD の シリアルNo を確認する。

No Screen Action
1 Clonezilla DVDを入れ、電源ON、すぐにF7を長押し
2 Prease select boot device: 「UEFI: ASUS SDRW-08D2S-U B911」
3 *Clonezilla live (Default settings, VGA 800×600) Enter
4 【警告】【全ての既存データは失われます】:
5 Machine: Serval
6 nvme0n1 (~末尾に SSD の シリアルNo) Enter
7 本当に続けてよろしいですか? y Enter
8 本当に続けてよろしいですか? y Enter
9 DVD Eject Enter
10 Enter
11 電源が落ちる

3-16. Timeshift の スケジュール設定

Timeshift は システムのバックアップやリストアをする。

バックアップを手動で取得することも可能だが、スケジュールしておくといつの間にか取得する。

ホーム (/home/shibata) や ルートのホーム (/root) は 除外される。

最初はフルバックアップ、後は差分バックアップになる。

Section Item Value
Type Select Snapshot Type RSYNC
Location Select Snapshot Location HDCZ-UT I-O DATA sda1
Schedule Select Snapshot Levels Daily Keep 14
Users User Home Directories /home/shibata
/root
Filters Include / Exclude Patterns - /home/shibata/**
- /root/**
Misc Date Format %Y-%m-%d %H:%M:%S

3-17. Deja Dup の スケジュール設定

Deja Dup は ホーム (/home/shibata) のバックアップやリストアをする。

バックアップを手動で取得することも可能だが、スケジュールしておくといつの間にか取得する。

ルートのホーム (/root) のバックアップ取得は、パーミッションの関係で面倒。

ルートのホーム (/root) にはあまりファイルが無い為、バックアップを取らないことにした。

最初はフルバックアップ、後は差分バックアップになる。

Item Value
自動バックアップ オン
バックアップするフォルダ /home
無視するフォルダ ゴミ箱
保存場所 HDCZ-UTL4KB deja-dup
スケジュール 毎日
期限なし

3-18. Visual Studio Code

Visual Studio Code の セットアップを済ませる。

Visual Studio Code Remote Development(SSH) を使って C++、Java、Python を試してみた

3-19. 競技プログラミングツール

kimiyukiさん の online-judge-tools

How to install の from PyPI を参考に、visual studio code の ターミナルからコマンドを実行。

fig.2 install online-judge-tools

ターミナル右配置で、結果が見やすくなる。

/home/shibata/workspace 配下に以下のファイルを配置する。

p.sh
# !/bin/bash

# プログラミング言語によってはコンパイルエラー等
# スクリプトエラー発生時には処理を中断する
set -e

# Python

# ABC向け シェル
# 企業コンテスト向け シェル(第1引数:000 第2引数:a~)

# program folder
pgm="./Main/"

# コンパイル

# テストフォルダの削除
rm -rf test

# ゼロ埋め
z=`printf %03d $1`

# ABC ARC など コンテストID
conid=$(<conid.txt)

# ログイン
if [[ ! -f ~/.local/share/online-judge-tools/cookie.jar ]]; then
    oj login https://atcoder.jp/login
fi

# ダウンロード
if [ "000" != ${z} ] ; then
    oj dl https://atcoder.jp/contests/${conid}${z}/tasks/${conid}${z}_${2,,}
else
    oj dl https://atcoder.jp/contests/${conid}/tasks/${conid//-/_}_${2,,}
fi

# テスト
oj test -c "python3 ${pgm}a.py"

# pgmフォルダにコピー
if [ "000" != ${z} ] ; then
    cp -rf ${pgm}a.py ~/comp-prog/pgm/${conid}_Python/${conid}_${z}_${2^^}.py
else
    cp -rf ${pgm}a.py ~/comp-prog/pgm/${conid}_Python/`date +%Y_`${2^^}.py
fi
conid.txt
ABC

予め、selenium を インストールしておく。

install_selenium.sh
pip3 install selenium

AtCoder:競技プログラミングコンテストを開催する国内最大のサイト

AtCoder Beginner Contest 140 A問題 をやってみる。

a.py に プログラムを書く。

ターミナルにて以下を実行する。

execute_p.sh
./p.sh 140 a

fig.3 execute p.sh

Username と Password は セットアップ後の初回だけ聞かれる。

fig.4 Username Password

これからは ./p.sh だけ実行すれば 最後までやってくれる。

fig.5 success

最後に「success」と出たらプログラムを提出する。

このツールには提出の機能もあるが、事故防止の為、提出は手動で行う。

4. モディファイヤキー

「Shift, Alt」など他のキーとの組み合わせによって入力パターンを増やす元となるキー。

Linuxで自由自在にキーバインドを拡張する方法を試したら簡単だった

セミコロン + A で HOME。

遠くのキーがキーバインドによってホームポジション崩さずに入力できる。

上記サイトと同じ設定する。

上記サイトに従って keymap を確認する。
xmodmap -pke

押したキーの keycode を確認する。
xev

キーバインドを設定するファイルを新規作成する。
vi ~/keybind

vi で内容を以下の通りとして保存する。

keybind
keycode 47 = Mode_switch
keycode 251 = semicolon colon semicolon colon

keycode  26 = e E Up Up
keycode  38 = a A Home Home
keycode  39 = s S Left Left
keycode  40 = d D Down Down
keycode  41 = f F Right Right
keycode  42 = g G End End
keycode  43 = h H BackSpace BackSpace
keycode  44 = j J Return Return
keycode  45 = k K Delete Delete

keybindファイルを反映する。

xmodmap ~/keybind

keycode 43 の BackSpace が効かない (Visual Studio Code)。

テキストエディタでは既に有効である。

Visual Studio Code にて

ファイル > ユーザー設定 > 設定

「keyboard.dispatch」のデフォルト値は「code」。

「keyboard.dispatch」の値を「keyCode」にする。

「keyboard.dispatch」の設定によりキー操作のディスパッチロジック制御が変わる。

上記設定により keycode 43 の BackSpace が有効になった。

xcapeのインストール

install_xcape
sudo apt-get install git gcc make pkg-config libx11-dev libxtst-dev libxi-dev

git clone https://github.com/alols/xcape.git

cd xcape/

make

sudo make install

セミコロンを復活する。

xcape -e "Mode_switch=semicolon"

再起動すると設定が無効になる。

vi で以下の内容を末尾に追記する。

下記設定により再起動後もキーバインドの設定が有効になった。

vi ~/.bashrc

.bashrc
if [ -f ~/keybind ]; then
    xmodmap ~/keybind
    count=`ps -ef | grep xcape | grep -v grep | wc -l`
    if [ $count -ne 0 ]; then
        #The process is alive.
        killall xcape
    fi
    xcape -e "Mode_switch=semicolon"
fi

後に、上記の追記内容は削除し、別のシェルファイルとした。
『6. 「.bashrc」ファイル と 「.bash_profile」ファイル について』を参照。

5. Visual Studio Code の cache ファイル を 削除 する

日次バックアップのファイル数が多くなってきた。
起動時に Visual Studio Code の cache ファイル を削除する。

削除コマンドを書いたファイルを新規作成する。

vi ~/vscode_cache_clear

vscode_cache_clear
rm -rf ~/.config/Code/Backups/*
find ~/.config/Code/Cache/ -type f -print0 |xargs -0 rm -rf
rm -rf ~/.config/Code/Cache/*
find ~/.config/Code/CachedData/ -type f -print0 |xargs -0 rm -rf
rm -rf ~/.config/Code/CachedData/*
rm -rf ~/.config/Code/CachedExtensions/*
find ~/.config/Code/"Code Cache"/ -type f -print0 |xargs -0 rm -rf
rm -rf ~/.config/Code/"Code Cache"/*
rm -rf ~/.config/Code/GPUCache/*
rm -rf ~/.config/Code/User/snippets/*.code-snippets

*.code-snippets ファイルは、各プログラミング言語ごとのスニペットファイル (グローバルファイル) であり、一時的な作業ファイルとして使用している。実際の 各プログラミング言語ごとのスニペットファイル は同ディレクトリの *.json を使用している為、*.code-snippets ファイル を削除している。

ファイル作成時、パーミッションは通常 chmod 644 に相当する。
つまり作成者自身でさえも実行権限が無い為、下記を実行する。

chmod u+x ~/vscode_cache_clear

これにより作成者自身にのみ実行権限を与えた。
パーミッションは chmod 744 相当となる。

vi で以下の内容を末尾に追記する。

下記設定により起動時に Visual Studio Code の cache ファイル を削除するようになった。

vi ~/.bashrc

.bashrc
if [ -f ~/vscode_cache_clear ]; then
    . ~/vscode_cache_clear
fi

後に、上記の追記内容は削除し、別のシェルファイルとした。
『6. 「.bashrc」ファイル と 「.bash_profile」ファイル について』を参照。

6. 「.bashrc」ファイル と 「.bash_profile」ファイル について

これまでに vi で「.bashrc」ファイルに設定を追記してきた。
追記した設定が反映されるタイミングと、「.bash_profile」ファイルについて以下に記述する。

コマンドプロンプト は、Ubuntu では 端末 (ターミナル) と呼ぶ。
端末を起動した時に、呼ばれるのは「.bashrc」ファイルである。

一般的にログイン時に呼ばれるのは、「.bash_profile」ファイルであり、「.bashrc」ファイルでない。

ここでは、ログインシェルとして /bin/bash を使用している事を前提としている。

端末にて「chsh」と入力すると、以下の要領で標準設定値が表示される。
ログインシェル [/bin/bash]:

ここで使用したいログインシェルを指定してエンターキーを押すと、ログインシェルを指定することが出来る。
確認したいだけなので、ここは指定せず、そのまま端末を×ボタンで閉じる。

ログイン後の初回起動アプリが、Firefox (ウェブブラウザ) だったら、gedit (テキストエディタ) だったら、
その時には、「.bashrc」ファイルに指定した内容は実行されない。

『4. モディファイヤキー』や『5. Visual Studio Code の cache ファイル を 削除 する』は
「.bashrc」ファイルにて指定した為、ログイン時には実行されないことになる。

これをなんとかしたかった。

そこで「.bash_profile」ファイルにて指定する事により、
『4. モディファイヤキー』や『5. Visual Studio Code の cache ファイル を 削除 する』を
ログイン時に必ず実行しようと思っていた。

ところが「.bash_profile」ファイルにて指定しても
『4. モディファイヤキー』や『5. Visual Studio Code の cache ファイル を 削除 する』は
ログイン時に実行されなかった。

「.bashrc」ファイル と 「.bash_profile」ファイルの関係は容易ではない。
「.bash_profile」ファイルは、環境構築時には元々存在しなかった。

「.bash_profile」ファイルは諦めて、作成した「.bash_profile」ファイルは削除した。
『4. モディファイヤキー』や『5. Visual Studio Code の cache ファイル を 削除 する』にて
「.bashrc」ファイルに追記した内容を削除した。

ログイン時に設定を有効にする為には、以下の方法がある。

ユーザー名_profile (好きなファイル名で良い) を新規作成する。
vi ~/ユーザー名_profile

ユーザー名_profile
if [ -f ~/keybind ]; then
    xmodmap ~/keybind
    count=`ps -ef | grep xcape | grep -v grep | wc -l`
    if [ $count -ne 0 ]; then
        #The process is alive.
        killall xcape
    fi
    xcape -e "Mode_switch=semicolon"
fi

if [ -f ~/vscode_cache_clear ]; then
    . ~/vscode_cache_clear
fi

保存する。

パーミッションを chmod 744 相当とする。

chmod u+x ~/ユーザー名_profile

画面下左端の、Windowsでいうところの「スタート」ボタン、
Ubuntu 18.04 の「アプリボタン」(3行3列の9つ丸印のボタン)を押す。

「検索ワードを入力…」に「session」という検索ワードを入力する。
「自動起動するアプリケーションの設定」というものが表示されるので起動する。

追加ボタンを押す。
以下の情報を入力する。

名前「ユーザー名_profile」(好きな名前で良い)

コマンド「/home/ユーザー名/ユーザー名_profile」
(好きなファイル名で良い、先に新規作成のファイルパスを指定)

説明「ユーザー名_profile」(好きな内容で良い)

以上により
ログイン後の初回起動アプリが、Firefox (ウェブブラウザ) 、gedit (テキストエディタ)でも
『4. モディファイヤキー』や『5. Visual Studio Code の cache ファイル を 削除 する』の
内容が有効となる事を確認した。

終わりに

仮想端末で一通り経験していた為か、違和感なく入ることができた。

今のところ極めて快適に使用できていて、System76のPCを購入して良かったと思っています。

9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?