MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - SUSE Linuxのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - SUSE Linux
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == SUSE Linux EnterpriseおよびopenSUSEのインストールおよびインストール後の初期設定について記載する。<br> 特に、推奨事項に関する事柄を記載する。<br> <br><br> == OSのダウンロード == 公式Webサイトにアクセスして、OSのイメージファイルをダウンロードする。<br> * SUSE Linux Enterprise Desktop *: https://www.suse.com/download/sled/ * SUSE Linux Enterprise Server *: https://www.suse.com/download/sles/ * openSUSE *: https://www.opensuse.org/ *: openSUSEではTorrentファイルが存在するため、Torrentを使用した方がダウンロード速度が速い。 <br><br> == ブータブルUSBの作成 == SUSEのISOファイルをダウンロードした後、SUSEをインストールするために、ブータブルイメージを作成する必要がある。<br> ブータブルストレージを作成するには、[https://trendoceans.com/create-bootable-usb-using-etcher-in-linux/ balenaEtcher]、[https://trendoceans.com/easily-create-a-multiboot-usb-with-ventoy/ ventoy]、<code>dd</code>コマンドを使用する。<br> <br> ==== ブータブルイメージを作成するストレージの場所 ==== ストレージをシステムに接続する。<br> ブータブルイメージを作成するストレージの場所を確認するには、<code>lsblk</code>コマンドまたは<code>fdisk</code>コマンドを使用する。<br> <br> 以下の例では、/dev/sdcストレージの/dev/sdc1パーティションにブータブルイメージを作成する。<br> sudo fdisk -l # 実行例 ディスク /dev/sdc: 14.33 GiB, 15376318464 バイト, 30031872 セクタ ディスクモデル デュアルドライブ 単位:1 * 512 = 512バイトのセクター セクターサイズ(論理/物理):512バイト/512バイト I/Oサイズ(最小/最適):512バイト/512バイト ディスクラベルの種類:DOS ディスクの識別子 0x3f046fe3 デバイス ブート スタート エンド セクター サイズ Id タイプ /dev/sdc1 2048 30031871 30029824 14.3G c W95 FAT32 (LBA) <br> ==== ブーターブルストレージの作成 ==== ストレージの場所を確認した後、起動可能なイメージを作成する。<br> <br> 起動可能なイメージを作成するには、以下のコマンドを実行する。(このプロセスは、完了するまでに時間が掛かる)<br> sudo dd if=<ISOファイルのフルパス> of=/dev/<ストレージのパーティション名> status=progress <br> もし、SUSEのブータブルイメージの作成に問題がある場合は、以下の動画を閲覧すること。<br> <center><embedvideo service="youtube">https://www.youtube.com/watch?v=x65P-B3E_FY&t=56s</embedvideo></center> <br><br> == SUSEのインストール時の注意点 == ==== SLE / openSUSE ==== もし、インストーラがフリーズする場合は、以下の手順を実施する。<br> # 可能であれば、BIOS / UEFIの設定画面からセキュアブートを有効にする。 #: <u>以下の設定例は、GIGABYTEのX570 UDの設定手順である。</u> #: [BIOS]タブ - [CSM Support]を[Disabled]に変更する。 #: [BIOS]タブ - [Secure Boot] - [Secure Boot Mode]を[標準]に変更する。 #: [BIOS]タブ - [Secure Boot] - [Secure Boot]を[Enabled]に変更する。 #: 上記の設定により、[BIOS]タブ - [Secure Boot] - [System Mode]が[User]と表示されていることを確認する。 # DVD、BD、USBメモリ等からSUSEのインストーラを起動する。 # インストール画面にて、インストーラの設定を行う。 #* UEFIを使用してインストール #*: インストール画面にある[Install]にフォーカスを移動して、[e]キーを押下する。 #*: grubエントリから、linuxefi/boot/vmlinuzxxxで始まる行を見つけて、splash=silentの後に<code>nomodeset</code>を追記する。 #*: [F10]キーを押下して、インストーラを起動する。 #* レガシーBIOSを使用してインストール #*: インストール画面にある[Install]にフォーカスを移動して、[F5]キーを押下する。 #*: 画面下にある[nomodeset]を選択して、[Enter]キーを押下する。 #*: [F5カーネル]に<code>nomodeset</code>と表示されていることを確認する。 #*: [Enter]キーを押下して、インストーラを起動する。 # インストール完了後、リポジトリを更新してシステムをアップグレードする。 #: <code>sudo zypper refresh && sudo zypper dup</code> # OSを再起動する。 # 再起動後、YaSTのブートローダから<code>nomodeset</code>の記述を削除する。<br><br>または、/etc/default/grubファイルから、<code>GRUB_CMDLINE_LINUX_DEFAULT =</code>で始まる行を見つけて、<code>nomodeset</code>の記述を削除する。<br>以下のコマンドを実行して、GRUBを更新する。<br><code>sudo grub2-mkconfig -o /boot/grub2/grub.cfg</code> # OSを再起動する。 <br> ==== SLE - 拡張機能とモジュールの選択 ==== ライセンスの登録後、SUSE Linux Enterpriseで使用可能なモジュールと拡張機能が一覧表示される。<br> モジュールとは、ユーザのニーズに合わせて製品を構築できるコンポーネントのことで、無償で提供されている。<br> 拡張機能は、製品に特定の機能を追加する。<br> また、拡張機能はサブスクリプションとして提供されており、登録キーを必要とする。<br> <br> 提供されるモジュールまたは拡張機能は、インストールの最初のステップで選択した製品に応じて異なる。<br> モジュールとそのライフサイクルの説明については、モジュールを選択した後に表示されるテキストを参照すること。<br> 詳細については、Modules and Extensions Quick Startおよびリリースノートを参照してください。<br> <br> モジュールの選択はインストールのスコープに間接的な影響を与える。<br> インストール環境と実働システムでどのリポジトリを使用できるかが定義されるからである。<br> <br> SUSE Linux Enterpriseでは、次のモジュールと拡張機能が提供されている。<br> * Basesystem Module(必須) *: 統合インストーラ上に基本システムを追加する。 *: このモジュールは、デフォルトでインストール用に選択されており、選択解除してはならない。 *: 依存関係: なし *: <br> * Desktop Applications Module(必須) *: グラフィカルユーザインタフェースと重要なデスクトップソフトウェアを追加する。 *: このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。 *: 依存関係: Basesystem *: <br> * Development Tools Module(推奨) *: ソフトウェアのコンパイルとデバッグに必要とされるコンパイラ(gccを含む)およびライブラリが含まれる。 *: 以前のソフトウェア開発キット(SDK)を置き換える。 *: 依存関係: Basesystem、Desktop Applications *: <br> * Python 2 Module(必須) *: このモジュールには、Python 2ランタイムおよびモジュールが含まれる。 *: このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。 *: 依存関係: Basesystem *: <br> * SUSE Cloud Application Platform Tools Module *: SUSE Cloud Application Platform製品とのやり取りを可能にするツールを追加する。 *: 依存関係: Basesystem *: <br> * SUSE Linux Enterprise Workstation Extension(必須) *: オフィススイートやマルチメディアソフトウェア(例 : ミュージックプレーヤ、ビデオプレーヤ)等の追加デスクトップツールが含まれる。 *: この拡張機能は、SUSE Linux Enterpriseサブスクリプションに含まれる。 *: このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。 *: 依存関係: Basesystem、Desktop Applications *: <br> * SUSE Package Hub(推奨) *: openSUSEコミュニティが管理しているSUSE Linux Enterpriseパッケージへのアクセスを提供する。 *: これらのパッケージは、L3サポート無しで配布されるため、SUSE Linux Enterpriseのサポート可能性に影響を与えることはない。 *: 詳細については、https://packagehub.suse.com を参照すること。 *: 依存関係: Basesystem <br> 一部のモジュールでは、他のモジュールをインストールする必要が生じるため、<br> モジュールを選択すると、この依存関係を満たすために他のモジュールが自動的に選択される場合がある。<br> <br> 製品によっては、特定のモジュールと拡張機能に登録サーバが推奨マークを付けている場合もある。<br> 推奨されたモジュールと拡張機能は、登録およびインストールのために自動選択される。<br> これらの推奨項目をインストールしないときは、手動で選択を解除する必要がある。<br> <br><br> == ブートローダの設定 == ブートローダの<code>quiet</code>オプションは、ブートプロセスを出力しないようにする設定である。<br> <code>splash</code>オプションは、ブート画面を表示するための設定である。<br> もし、Linux起動時にブートプロセスの情報を見る場合は、ブートローダのオプションを以下のように設定する。<br> * <code>quiet</code>オプションを削除する。 * <code>splash</code>オプションを、<code>splash=verbose</code>に設定する。 <br><br> == システムの更新 == インストールした直後に、システムの更新を実行して、システムが最新の状態を保つようにする。<br> sudo zypper update <br><br> == スナップショットの設定 == まず、スナップショットを有効にするため、/etc/sysconfig/yast2ファイルにある<code>USE_SNAPPER</code>が<code>"yes"</code>に設定されていることを確認する。<br> <br> 初期設定では、ルートディレクトリとホームディレクトリが同じパーティションの場合、ホームディレクトリはスナップショットには含まれない。<br> ホームディレクトリをスナップショットに含めるには、別のSnapper設定ファイルを作成する必要があるため、以下のコマンドを実行する。<br> 以下のコマンドを実行すると、スナップショットの設定ファイルである/etc/snapper/configs/homeファイルが作成される。<br> sudo snapper -c home create-config /home <br> 必要に応じて2つの設定ファイルを変更しなければならない。<br> * /etc/snapper/configs/rootファイル * /etc/snapper/configs/homeファイル <br> ルートパーティションのスナップショットの設定を編集するため、以下のコマンドを実行する。<br> sudo vi /etc/snapper/configs/root または sudo vi /etc/snapper/configs/home <br> 以下に、変更箇所の説明を記載する。<br> * BACKGROUND_COMPARISON="yes" *: 指定したディレクトリ(ルートディレクトリまたはホームディレクトリ)の新しいスナップショットを作成する時、 *: Snapperはバックグラウンドで比較プロセスを実行することで、新旧ファイルを区別することができる。 *: その後にSnapperが起動した時、新旧のスナップショット間の変更を表示するための時間は掛からない。 *: <br> *: これは、良い機能である反面、時間の経過とともにI/O処理に負荷が掛かり、十分なリソースがないとシステムが遅くなる可能性があるので、 *: <code>no</code>に設定した方がよい。 *: <br> * NUMBER_CLEANUP="yes" *: この設定を使用すると、毎日保持するスナップショットの数を制限して、スナップショットをクリーンアップできる。 *: また、NUMBER_LIMIT="50"およびNUMBER_LIMIT_IMPORTANT="10"と一緒に使用して、システムに保持するスナップショットの数をSnapperに伝える。 *: NUMBER_LIMITは一般的なスナップショット向け、NUMBER_LIMIT_IMPORTANTは重要なスナップショット向け(パッケージ管理等)である。 *: <br> *: また、数に関係なく全てのスナップショットの数だけを保持したい場合は、NUMBER_MIN_AGEを0に設定する。(初期設定では、30分未満のバックアップは削除されない) *: これらの値については、[https://doc.opensuse.org/documentation/leap/archive/15.0/reference/html/book.opensuse.reference/cha.snapper.html#sec.snapper.clean-up.number Snapperの公式ドキュメント]を参照すること。 *: <br> * TIMELINE_CREATE="yes"およびTIMELINE_CLEANUP="yes" *: この設定は、毎時スナップショットの作成とクリーニングを行う。 *: Snapperは、ルートディレクトリとホームディレクトリの両方のスナップショットを1時間ごとに作成し、 *: TIMELINE_LIMIT_HOURLY等で指定した値よりも古いスナップショットを自動的に削除する。 *: 例えば、過去24時間以内のスナップショットをすべて保持してそれ以降は削除したり、1日1個のスナップショットを保持する等、システムに指示することができる。 *: これらの設定については、[https://doc.opensuse.org/documentation/leap/archive/15.0/reference/html/book.opensuse.reference/cha.snapper.html#sec.snapper.clean-up.timeline 公式ドキュメント]を参照すること。 *: <br> * EMPTY_PRE_POST_MIN_AGE="<数値(秒)>" *: zypperコマンドまたはYaST2を実行すると、実行する操作の前後にスナップショットが作成される。 *: 前後のスナップショットの作成は、EMPTY_PRE_POST_MIN_AGE="<数値(秒)>"で指定できる。(値は秒単位) <br><br> == 公式リポジトリが利用可能か確認 == まず、SUSEの公式リポジトリが利用できるかどうかを確認するため、ソフトウェアのインストールを行う。<br> 例えば、nanoをインストールする場合は、以下のコマンドを入力する。<br> sudo zypper install nano <br><br> == PackmanリポジトリとPackman Essentialを追加 == Packmanリポジトリは、SUSE用の追加パッケージを提供している。<br> したがって、ダウンロードしているものを理解している場合は、Packmanリポジトリを有効にする。<br> SUSEの公式リポジトリにほぼ依存している場合は、Packman Essentialを有効にすることをお勧めする。<br> <br> ※サードパーティのリポジトリには潜在的なリスクが伴う可能性があることに注意すること。<br> # Packman全体を有効にする場合 sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ packman # SLE 15(推奨) sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.3/ packman # SUSE 15.3 (推奨) sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/ packman # SUSE 15.2(推奨) <br> # Packman Essentialを有効にする場合 sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/Essentials/ packman-essentials # SLE 15 sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.3/Essentials/ packman-essentials # SUSE 15.3 sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/Essentials/ packman-essentials # SUSE 15.2 <br> Packmanリポジトリを追加した後は、システムパッケージをPackmanに切り替えること。<br> 両方のリポジトリのパッケージが混在すると、様々な問題が発生する恐れがある。<br> sudo zypper dup --from packman --allow-vendor-change # packman または sudo zypper dup --from packman-essentials --allow-vendor-change # packman-essential <br><br> == マルチメディアコーデックのインストール == <u>※注意</u><br> <u>これらのコーデックをインストールするには、Packmanリポジトリを有効にする必要がある。</u><br> <br> openSUSEでは、マルチメディアコーデックが標準でサポートされていない。<br> 詳細については、公式Webサイトで読むことができる。<br> <br> <code>--allow-vendor-change</code>オプションは、インストールされた解決可能なソフトウェアのベンダーの変更を許可する。<br> また、<code>--no-allow-vendor-change</code>オプションは、外部リポジトリのパッケージをディストリビューションバージョンに変更しない場合に使用する。<br> <br> <u>Packmanリポジトリから必要なコーデックをまとめてインストールする場合、以下に示すライブラリをインストールする。</u><br> sudo zypper install --allow-vendor-change x264 ffx264 libx264-161 libx264-161-32bit x265 libx265-199 libx265-199-32bit ffmpeg-4 \ gstreamer-plugins-libav gstreamer-plugins-libav-32bit gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon \ libavcodec57 libavcodec57-32bit libavdevice57 libavdevice57-32bit \ libavcodec58_134 libavcodec58_134-32bit libavdevice58_13 libavdevice58_13-32bit \ libavfilter6 libavfilter6-32bit libavfilter7_110 libavfilter7_110-32bit \ libavformat57 libavformat57-32bit libavformat58_76 libavformat58_76-32bit \ libavutil55 libavutil55-32bit libavutil56_70 libavutil56_70-32bit \ vlc vlc-codecs vlc-codec-gstreamer <br> <u>Packmanリポジトリからコーデックを個別にインストールする</u>場合を、以下に示す。<br> PackmanリポジトリからH264/AVCおよびh265/HEVCをインストールするには、以下に示すライブラリをインストールする。<br> sudo zypper install --allow-vendor-change x264 ffx264 libx264-161 libx264-161-32bit x265 libx265-199 libx265-199-32bit vlc vlc-codecs vlc-codec-gstreamer <br> Packmanリポジトリから音声や動画を記録、変換、およびストリーミングする機能が必要な場合は、以下に示すライブラリ(FFmpegマルチメディアフレームワーク等)をインストールする。<br> sudo zypper install --allow-vendor-change ffmpeg-4 libavcodec57 libavcodec57-32bit libavdevice57 libavdevice57-32bit \ libavcodec58_134 libavcodec58_134-32bit libavdevice58_13 libavdevice58_13-32bit \ libavfilter6 libavfilter6-32bit libavfilter7_110 libavfilter7_110-32bit \ libavformat57 libavformat57-32bit libavformat58_76 libavformat58_76-32bit \ libavutil55 libavutil55-32bit libavutil56_70 libavutil56_70-32bit <br> PackmanリポジトリからGStreamerライブラリが必要な場合は、以下に示すライブラリをインストールする。<br> sudo zypper install --allow-vendor-change gstreamer-plugins-libav gstreamer-plugins-libav-32bit gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon \ vlc vlc-codec-gstreamer vlc-codec-gstreamer ogmtools <br> 今後、Pacmanリポジトリから取得することを設定する。<br> sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.3/ # SUSE 15.3 または sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.2/ # SUSE 15.2 <br><br> == VLC == VLCをインストールする場合、まず、VLCのリポジトリを追加する。<br> <u>SUSEの公式リポジトリにもVLCは存在するが、VLCの公式リポジトリの方がパッケージの更新が早い。</u><br> # SLE 15 SP3 / openSUSE Leap 15.3 共通 sudo zypper addrepo http://download.videolan.org/SuSE/SLEap_15.3/ VLC sudo zypper modifyrepo -r VLC <br> 次に、VLCをインストールする。<br> sudo zypper install vlc <br> VLC Mozilla Pluginをインストールする場合、以下のコマンドを実行する。(デフォルトではインストールされない)<br> sudo zypper install npapi-vlc <br><br> == Webブラウザのプラグイン == 多くのWebサイトでは、期待どおりに機能するために様々なブラウザプラグインをインストールする必要がある。 これらのプラグインは、Webサイトの閲覧中にパフォーマンスとセキュリティに影響を与える可能性があるため、必要な場合にのみインストールすること。<br> <br> オンライン動画やゲーム等のFlashサポートが必要な場合は、freshplayerpluginをインストールする。(Packmanリポジトリが必要)<br> sudo zypper ar -cfp 90 <nowiki>https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/</nowiki> packman # SLE 15(推奨) sudo zypper ar -cfp 90 <nowiki>https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.3/</nowiki> packman # SUSE 15.3 (推奨) sudo zypper ar -cfp 90 <nowiki>https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/</nowiki> packman # SUSE 15.2(推奨) sudo zypper install freshplayerplugin <br> Javaアプレットは、ゲームや一部の国のホームバンキングなど、様々な用途に使用されている。<br> java-1_8_0-openjdk-pluginがインストールされていない場合は、パッケージマネージャを使用してインストールする。<br> sudo zypper install java-1_8_0-openjdk <br> Firefoxおよびその他のWebブラウザで様々なマルチメディアストリームのサポートを取得するには、xine-browser-pluginをインストールする。(Packmanリポジトリが必要)<br> sudo zypper install xine-browser-plugin <br><br> == 公式リポジトリには存在しないアプリケーションのインストール == 公式リポジトリ(またはソフトウェアセンター)に存在しないアプリケーションをインストールする必要がある場合は、<br> [https://itsfoss.com/flatpak-guide/ Flatpak]または[https://itsfoss.com/install-snap-linux/ Snaps]を有効にするか、<br> 他の方法にて必要なアプリケーションを簡単にインストールできる。<br> <br><br> == ネットワークの設定 (CUI) == IPアドレスの設定には、KDEシステム設定を使用する方法(NetworkManager)、YaSTを使用する方法(Wicked)、テキストファイルを直接編集する方法がある。<br> このセクションでは、Wickedのテキストファイルを直接編集する方法を記載する。<br> <br> まず、静的IPアドレスを設定する。<br> sudo vi /etc/sysconfig/network/ifcfg-eth0 <br> # /etc/sysconfig/network/ifcfg-eth0ファイル # 静的IPアドレスを使用 BOOTPROTO='static' # ブロードキャストアドレスの指定 BROADCAST='<ブロードキャストアドレス 例. 192.168.10.255>' ETHTOOL_OPTIONS='' # IPアドレスの指定 IPADDR='<IPアドレス 例. 192.168.10.5>' MTU='' NAME='' # サブネットマスクの指定 NETMASK='<サブネットマスク 例. 255.255.255.0>' # ネットワークアドレスの指定 NETWORK='<ネットワークアドレス 例. 192.168.10.0>' REMOTE_IPADDR='' STARTMODE='auto' DHCLIENT_SET_DEFAULT_ROUTE='yes' <br> 次に、参照するDNSサーバおよび自身のドメイン名を設定する。<br> sudo vi /etc/sysconfig/network/config <br> # /etc/sysconfig/network/configファイル # 自身のドメイン名を指定 # この設定は、resolv.confの[search]セクションに追加される NETCONFIG_DNS_STATIC_SEARCHLIST="<自身のドメイン名 例. suse.net>" # 参照するDNSサーバの指定 NETCONFIG_DNS_STATIC_SERVERS="<DNSサーバのIPアドレス 例. 192.168.10.1>" <br> 参照するDNSサーバを設定する。<br> sudo vi /etc/resolv.conf <br> # /etc/resolv.confファイル nameserver <DNSサーバのIPアドレス 例. 192.168.10.1> <br> さらに、デフォルトゲートウェイを設定する。<br> sudo vi /etc/sysconfig/network/routes <br> # デフォルトゲートウェイの指定 default <デフォルトゲートウェイのIPアドレス 例. 192.168.10.1> - eth0 <br> 最後に、PCを再起動する。<br> <br><br> == 電力管理の改善(TLPのインストール) == システム設定から電力を管理するためのオプションがいくつかある。<br> ただし、ラップトップでopenSUSEを使用する場合は、バッテリーの使用量を減らしたい場合がある。<br> TLPをインストールすることにより、コンピュータを監視し、最適な手法を(自動的に)実装してバッテリーの寿命を最適化する。<br> TLPをインストールするには、以下のコマンドを実行する。<br> sudo zypper install tlp tlp-rdw sudo systemctl enable tlp <br><br> == Microsoftフォント == MS Officeのファイルを扱う場合、Microsoftフォント(Arial、Times New Roman、Comic Sans等)をインストールする。<br> これらは、Packmanリポジトリからインストールすることができる。<br> sudo zypper install fetchmsttfonts <br><br> == .profileファイルの設定 == マルチユーザモード(Run Level 3)でSUSEを起動した場合、ログインシェルの日本語表記が文字化けをする。<br> そこで、ログインシェルの時は英語表記にして、GUIでターミナルを使用する時は日本語表記に設定する。<br> したがって、ログインシェルの起動時に呼ばれる.profileファイル(ホームディレクトリに存在する)の最下行に以下の設定を追記する。<br> <syntaxhighlight lang="bash"> # 使用しているシェルの種類を表示する echo "" 1>&2 echo "Login Shell is $0" 1>&2 # CUIで起動する時は英語表記にする RUNLEVEL=$(echo <ユーザのパスワード> | LANG=C sudo -S runlevel) MUMODE="N 3" if [ "$RUNLEVEL" = "$MUMODE" ]; then GUI=$(echo $XDG_CURRENT_DESKTOP) if [ -z "$GUI" ]; then export LANG=C echo 'Set $LANG is $LANG=C' fi unset -v GUI fi echo "" # Oracle JDKの設定 export JAVA_HOME="<Oracle JDKのインストールディレクトリ>/jdk-x.x.x" export J2SDKDIR="<Oracle JDKのインストールディレクトリ>/jdk-x.x.x" # Vagrantのホームディレクトリの変更 export VAGRANT_HOME="<Vagrantのホームディレクトリのフルパス>" # VirtualBoxの仮想マシンディレクトリの変更 VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス> </syntaxhighlight> <br><br> == .bashrcファイルの設定 == ~/.bashrcファイルに以下の設定を記述する。<br> # ~/.bashrcファイル # Ctrl+Dでシェルを終了しない set -o ignoreeof # 既存のファイルをリダイレクトで上書きしない set -o noclobber # ディレクトリ名だけで実行する時、cdコマンドの引数で指定したものとして実行する shopt -s autocd # コマンドの重複を履歴に残さない export HISTCONTROL=ignoredups # 空白から始めたコマンドを無視 export HISTCONTROL=ignorespace # コマンド履歴に残さないコマンド群 HISTTIMEFORMAT='%Y%m%d %T '; export HISTTIMEFORMAT # エイリアスの設定 alias cd='cd -P' alias rm='rm -i' alias cp='cp -i' alias mv='mv -iv' alias ls='ls -hlF --color=auto' alias cat='cat -n' alias less='less -n' alias clear='clear && echo -en "\e[3J"' alias en='LANG=C LANGUAGE=C LC_ALL=C' alias lgrep='ls -ahlF | grep' alias igrep='sudo zypper search -i --detail' alias repoclean='sudo zypper clean -a && sudo zypper --gpg-auto-import-keys refresh && sudo zypper refresh' alias nano='nano -lmS' alias snano='sudo nano -lmS' alias skate='kdesu /usr/bin/kate' alias startnw=' sudo systemctl stop wickedd wicked; sudo systemctl start NetworkManager' alias startwicked=' sudo systemctl stop NetworkManager; sudo systemctl start wickedd wicked' alias kde=' echo <パスワード> | sudo -S systemctl restart graphical.target' alias gnome=' echo <パスワード> | sudo -S systemctl restart graphical.target' alias udesktop='update-desktop-database $HOME/.local/share/applications' # KDE Plasmaを使用している場合 alias plasma=' /usr/bin/kquitapp5 plasmashell; plasmashell > /dev/null 2>&1 & disown; sleep 2; exit' #alias plasma=" killall plasmashell; plasmashell > /dev/null 2>&1 & disown" # VS Codeをインストールしている場合 alias scode='code --user-data-dir='<VSCodeのプロジェクトディレクトリ>'' alias suse='cat /etc/SUSE-brand' alias sshpi='ssh <ユーザ名>@<ホスト名またはIPアドレス> -p <ポート番号> -i <暗号鍵のフルパス名>' # Raspberry Pi向けSSH接続の設定 alias sshxrea='sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名> -p <ポート番号>' # XREA向けSSH接続の設定 # KVMをインストールしている場合 alias startkvm='sudo systemctl restart libvirtd' alias stopkvm='sudo systemctl stop libvirtd && sudo systemctl stop libvirtd.socket && sudo systemctl stop libvirtd-admin.socket && sudo systemctl stop libvirtd-ro.socket' # FreeRDPをインストールしている場合 alias rwin10='/home/ユーザ名/FreeRDP/freerdp-nightly/bin/xfreerdp /u:<仮想マシンのユーザ名> /p:<パスワード> /w:1536 /h:960 /sound:latency:400 /drive:suse,<共有するディレクトリ> /v:192.168.122.130' alias r2016='/home/ユーザ名/FreeRDP/freerdp-nightly/bin/xfreerdp /u:<仮想マシンのユーザ名> /p:<パスワード> /w:1536 /h:960 /sound:latency:400 /drive:suse,<共有するディレクトリ> /v:192.168.122.131' # SUSEが仮想マシンの場合 alias mhgfs='sudo vmhgfs-fuse -o allow_other .host:/Common /mnt/hgfs' alias uhgfs='sudo fusermount -u /mnt/hgfs' # コマンド履歴に残さないコマンド群 # SUSEがホストの場合 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:startkvm:stopkvm:repoclean*:suse:which*:clear:man*:repoclean:startx*:exit:" # SUSEが仮想マシンの場合 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:startkvm:stopkvm:repoclean*:suse:which*:clear:man*:repoclean:startx*:exit:mhgfs:uhgfs" # プロンプトの表示形式 PS1='\e[0;31m\u\e[0m@\e[0;32m\h\e[0m(\t) [Path \w] \n> ' # 変数FIGNOREのカスタマイズ # ディレクトリ名およびファイル名を設定する場合、補完対象から除外される export FIGNORE=.svn:${FIGNORE} # mkdirとcdを同時実行 function mkcd() { if [ "$#" -eq 0 ]; then echo "Too few arguments!" elif [ "$#" -eq 1 ]; then if [ -d $1 ]; then echo "$1 already exists!" cd $1 else mkdir -p $1 && cd $1 fi else echo "Too many arguments!" fi } # カレントディレクトリに存在するディレクトリとファイルの検索 function lgrep() { if [ "$#" -eq 0 ]; then echo "Please specify Regular Expression." elif [ "$#" -eq "1" ]; then OLDIFS=$IFS IFS=$'\n\t' for OBJECT in $(\ls -A --group-directories-first | \grep -iE "$1") do ls -AdhlF $OBJECT done unset OBJECT echo "" IFS=$OLDIFS else echo "Too many arguments!" fi } # パターンにマッチするファイル内容を検索する function datagrep() { if [ "$#" -eq 2 ]; then local IFS_BACKUP=$IFS IFS=$'' for OBJECT in $(\find . -type f -name "${1}" -print0 | \xargs -0 \grep -inE "${2}") do echo "${OBJECT}" done echo "" IFS=$IFS_BACKUP elif [ "$#" -eq 3 ]; then # 第1引数で指定したディレクトリが存在するか確認する if [ ! -d "$1" ]; then echo "Not Exist Directory $1" 1>&2 return 1 fi local IFS_BACKUP=$IFS IFS=$'' # 現在のカレントディレクトリを一時的に保存する local CURRENTDIR=$(\pwd) # 第1引数で指定したディレクトリに移動する cd "${1}"; # 第2引数で指定したパターンを使用して検索する for OBJECT in $(\find . -type f -name "${2}" -print0 | \xargs -0 \grep -inE "${3}") do echo "${OBJECT}" done # カレントディレクトリに戻る cd "${CURRENTDIR}" echo "" IFS=$IFS_BACKUP unset -v OBJECT else echo "Specify Arguments." 1>&2 fi return 0 } # manコマンドの結果をfirefoxで閲覧 function manh() { if [ "$#" -eq 0 ]; then echo "Too few arguments!" elif [ "$#" -eq "1" ]; then man --html=firefox $1 & else echo "Too many arguments!" fi } # KVMの起動 function startkvm() { local KVM_STATUS=$(sudo systemctl status libvirtd | grep "Active:" | grep -ie "dead") if [ -n "KVM_STATUS" ]; then sudo systemctl start libvirtd fi local NETWORK_STATUS=$(sudo virsh net-info default | grep -ie "起動中" -ie "Active" | grep -ie "no") if [ -n "$NETWORK_STATUS" ]; then sudo virsh net-start default fi } # KVMの停止 function stopkvm() { local NETWORK_STATUS=$(sudo virsh net-info default | grep -ie "起動中" -ie "Active" | grep -ie "yes") if [ -n "$NETWORK_STATUS" ]; then sudo virsh net-destroy default fi local KVM_STATUS=$(sudo systemctl status libvirtd | grep "Active:" | grep -ie "running") if [ -n "KVM_STATUS" ]; then sudo systemctl stop libvirtd libvirtd.socket libvirtd-admin.socket libvirtd-ro.socket fi } # Apache2とMySQLの起動 function startlamp() { local APACHE2_STATUS=$(sudo systemctl status apache2 | grep -ie "Active:" | grep -ie "dead") if [ -n "APACHE2_STATUS" ]; then sudo systemctl start apache2 fi local MYSQL8_STATUS=$(sudo systemctl status mysql | grep -ie "Active:" | grep -ie "dead") if [ -n "MYSQL8_STATUS" ]; then sudo systemctl start mysql fi } # Apache2とMySQLの停止 function stoplamp() { local APACHE2_STATUS=$(sudo systemctl status apache2 | grep "Active:" | grep -ie "running") if [ -n "APACHE2_STATUS" ]; then sudo systemctl stop apache2 fi local MYSQL8_STATUS=$(sudo systemctl status mysql | grep "Active:" | grep -ie "running") if [ -n "MYSQL8_STATUS" ]; then sudo systemctl stop mysql fi } # 環境変数PATHの設定 function SetPATH() { OLDIFS=${IFS} IFS=$':' BEFORE_HOME='$HOME' AFTER_HOME=${HOME} PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}}) SLASH=$(echo ${PATH_NAME: -1:1}) if [ ${SLASH} = "/" ]; then LENGTH="${#PATH_NAME}" let LENGTH=${LENGTH}-1 PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}}) fi if [ ! -d ${PATH_NAME} ]; then echo "No Exist Directory" return 1 fi EXIST_FLAG=0 for VALUE in ${PATH} do if [ ${VALUE} = ${PATH_NAME} ]; then EXIST_FLAG=1 break fi done if [ ${EXIST_FLAG} -eq 0 ]; then export PATH="$PATH_NAME:$PATH" elif [ ${EXIST_FLAG} -eq 1 ]; then echo "Already Exist ${PATH_NAME} in PATH " 1>&2 fi unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE IFS=${OLDIFS} return 0 } function SetLIBRARY() { OLDIFS=${IFS} IFS=$':' BEFORE_HOME='$HOME' AFTER_HOME="$HOME" PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}}) SLASH=$(echo ${PATH_NAME: -1:1}) if [ ${SLASH} = "/" ]; then LENGTH="${#PATH_NAME}" let LENGTH=${LENGTH}-1 PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}}) fi if [ ! -d ${PATH_NAME} ]; then echo "No Exist Directory" return 1 fi EXIST_FLAG=0 for VALUE in ${PATH} do if [ ${VALUE} = ${PATH_NAME} ]; then EXIST_FLAG=1 break fi done if [ ${EXIST_FLAG} -eq 0 ]; then export LD_LIBRARY_PATH="$PATH_NAME:$LD_LIBRARY_PATH" elif [ ${EXIST_FLAG} -eq 1 ]; then echo "Already Exist ${PATH_NAME} in PATH " 1>&2 fi unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE IFS=${OLDIFS} } # 環境変数PATHの重複を削除する function DeleteDuplicate() { if typeset -A &>/dev/null; then # 連想配列が使用できるか確認する # 使える場合 typeset -A _paths typeset _results while read -r _p do if [[ -n ${_p} ]] && (( ${_paths["${_p}"]:-1} )); then _paths["${_p}"]=0 _results=${_results}:${_p} fi done <<<"${PATH//:/$'\n'}" PATH=${_results/:/} unset -v _p _paths _results else # 使えない場合はawkを使用する typeset _p=$(awk 'BEGIN{RS=":";ORS=":"} !x[$0]++' <<<"${PATH}:") PATH=${_p%:*:} unset -v _p fi } <br><br> == PKG-CONFIGの設定 == pkg-config (ver. 0.24以降)をインストールしている場合、インストールされているライブラリを検索する場所を確認するには、以下のコマンドを実行する。<br> pkg-config --variable pc_path pkg-config <br> pkg-configにパスに追加するには、環境変数<code>PKG_CONFIG_PATH</code>を設定する。<br> 環境変数<code>PKG_CONFIG_PATH</code>は、コロンで区切られた.pcファイルを検索するディレクトリのリストである。<br> <br> デフォルトは、libdir/pkgconfig:datadir/pkgconfigであり、<br> libdirはpkg-configがインストールされたlibdir、datadirはpkg-configがインストールされたdatadirである。<br> <br> 例えば、.profileファイルに記述する場合は、以下のように追記する。<br> vi ~/.profile <br> # ~/.profileファイル # ...略 export PKG_CONFIG_PATH="${HOME}/xxx/lib64/pkgconfig:$(pkg-config --variable pc_path pkg-config)" export PKG_CONFIG_PATH="${HOME}/yyy/share/pkgconfig:PKGCONFIG=$(pkg-config --variable pc_path pkg-config)" # ...略 <br><br> == コマンド履歴を残さない設定 == ここでは、Bashを使用していることを前提に記載する。<br> <br> まず、.bash_historyファイルを削除する。<br> rm -rf ~/.bash_history <br> 次に、現在、メモリ上に残っているコマンド履歴を削除する。<br> history -c <br> 最後に、以下の設定を.bashrcファイルに追記する。<br> export HISTFILESIZE=0 export HISTSIZE=0 unset HISTFILE <br> 設定を反映させるため、ログアウトまたは再起動する。<br> <br><br> == パスワードフィードバックの設定 == ターミナルでパスワードフィードバックを有効にする方法を記載する。<br> <br> まず、/etc/sudoersファイルのバックアップを作成する。<br> cd /etc sudo cp sudoers sudoers_org <br> 次に、visudoコマンドを実行して、sudoersファイルの構成を編集する。<br> sudo EDITOR=nano visudo <br> /etc/sudoersファイルにある<code>Defaults env_reset</code>という設定を、以下のように変更する。<br> # 変更前 Defaults env_reset # 変更後 Defaults env_reset,pwfeedback <br> [Ctrl]キー + [o]キーを同時押下して編集内容を保存して、[Ctrl]キー + [x]キーを同時押下してNanoを終了する。<br> <br><br> == その他の設定 == ==== 自動ログイン ==== * YaST *# YaSTを起動して、[セキュリティとユーザ] - [ユーザとグループの管理]を選択する。 *# [ユーザとグループの管理]画面の[ユーザ]タブを選択して、画面右下の[熟練者用オプション]プルダウンから[ログイン設定]を選択する。 *# [ディスプレイマネージャのログイン設定]画面の[自動ログイン]にチェックを入力して、<br>[ログインするユーザ]プルダウンからユーザを選択する。 *# [OK]ボタンを押下する。 *: <br> * 手動 *# 以下のファイルを編集する。 *#: <code>sudo vi /etc/sysconfig/displaymanager</code> *# <code>DISPLAYMANAGER_AUTOLOGIN</code>項目において、自動ログインするユーザ名を記述する。 *#: 変更前 *#: <code>DISPLAYMANAGER_AUTOLOGIN=""</code> *#: 変更後 *#: <code>DISPLAYMANAGER_AUTOLOGIN="<自動ログインするユーザ名>"</code> *# Linuxを再起動して、自動ログインできるか確認する。 <br> ==== 日本語環境のインストール ==== 基本的には、SUSEのインストールメディアを使用して、インストール開始時に日本語を選択することである。<br> ただし、SUSEのLive DVDには、日本語関連のパッケージが含まれていないので、以下の手順を実行する必要がある。<br> また、何らかの理由で、テキストモードや英語でインストールしなければならない場合でも、インストール完了後に次の手順で日本語化できる。<br> <br> * インストールメディアが無い場合 *# インターネットに接続する。 *# YaSTを起動して、[言語設定]を選択して、[日本語]に設定する。 *# [ソフトウェアの管理]を選択して、[View]プルダウンから[Languages]を選択する。 *# [ja 日本語]にチェックを入力して、[Accept]ボタンを押下する。 *# ibus-mozc(デフォルト)またはfcitx-mozcを選択する。 <br> KDEのメニューの一部が英語のままの場合は、KDEのキャッシュファイル(/var/tmp/kdecache-<ユーザ名>)を削除すること。<br> <br> ==== ホームディレクトリのディレクトリ名を英語に変更する ==== 一括で変更するには、以下のコマンドを実行する。<br> LANG=en xdg-user-dirs-update --force <br> ==== 日本語入力の設定 ==== インプットメソッドフレームワーク(IBusやFcitx等)と変換エンジン(ibus-mozcやfcitx-mozc等)をインストールする。<br> (SUSEのインストール時に日本語環境を指定すると、自動的にこれらのパッケージがインストールされる)<br> <br> 使用するインプットメソッドフレームワークを指定する場合、~/.i18nファイルの環境変数<code>INPUT_METHOD</code>を設定する。<br> <br> 以下の例では、IBusを自動起動するように設定している。<br> FcitxとIBusがインストールされている場合、Fcitxの方がIBusより優先度が高いため、初期設定ではFcitxが自動起動する。<br> 以下のように、IBusを設定することで、IBusを自動起動することができる。<br> # ~/.i18nファイル INPUT_METHOD=ibus <br> ==== Windowsで作成したzipファイルを文字化けせずに展開する ==== <code>unzip-rcc</code>パッケージに含まれている<code>unzip</code>コマンドを使用すると、文字コードを自動判定して展開される。<br> <br> ==== CPU緩和策の設定 ==== Intel CPUの脆弱性において、2018年1月以降、SpectreとMeltdownに始まり、同年年8月のL1 Terminal Faultに至るまで、<br> 様々なCPUサイドチャネル情報のリークが公開されている。<br> <br> そこで、デプロイされた全てのソフトウェアのミティゲーションについて、ミティゲーションの動作を有効化、無効化、または制御する1つ以上のブートオプションが追加された。<br> また、これらの緩和策は、影響を受けるCPUの自動検出も行う。<br> <br> SUSEは、安全な標準設定でアップデートをリリースされているが、パフォーマンスとセキュリティのバランスをとることができないことが予想される。<br> <br> これらのCPU問題に関する全てのオプションを一元的に管理するmitigationsと呼ばれるブートオプションを導入している。<br> <br> mitigationsオプションには、以下の設定がある。<br> * mitigations=off *: 全てのCPUサイドチャネルの緩和は無効になる。 *: この設定は、最高のパフォーマンスを提供するがセキュリティは最低限であり、信頼されないソフトウェアおよびソースコードは実行しない方がよい。 <br> * mitigations=auto *: CPUの種類に基づいて検出されるため、全てのCPUサイドチャネルのミティゲーションが有効になる。 *: 自動検出は、影響を受けていない古いCPUと影響を受けていない新しいCPUの両方を処理して、透過的にミティゲーションを無効にする。 *: このオプションは、SMTを有効にしたままにしておきます。 <br> * mitigations=auto,nosmt *: この設定は、mitigations=autoと同じだが、必要に応じてCPUの対称的なマルチスレッドが無効になる。 *: 例えば、L1ターミナルフォルトのサイドチャネルの問題を緩和するため等。 <br> ==== マウス操作でスリープ / ハイバネートから復帰する ==== まず、マウスのデバイスID等を確認するため、以下のコマンドを実行する。<br> 以下の例では、<code>Bus 001 Device 003: ID 062a:4102 MosArt Semiconductor Corp. Wireless Mouse</code>と記載がある行から、<code>ID</code>の値を確認する。<br> lsusb # 出力例 Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 062a:4102 MosArt Semiconductor Corp. Wireless Mouse Bus 001 Device 002: ID 1a81:1004 Holtek Semiconductor, Inc. Wireless Dongle 2.4 GHZ HT82D40REW Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub <br> マウスのデバイスファイルがあるディレクトリを確認するため、以下のコマンドを実行する。<br> 以下の例では、<code>/sys/bus/usb/devices/1-2/product:2.4G Wireless Mouse</code>と記載があるため、<br> デバイスファイルがあるディレクトリは、<code>/sys/bus/usb/devices/1-2</code>ディレクトリである。<br> grep . /sys/bus/usb/devices/*/product # 出力例 /sys/bus/usb/devices/1-1/product:Wireless Dongle /sys/bus/usb/devices/1-2/product:2.4G Wireless Mouse /sys/bus/usb/devices/usb1/product:xHCI Host Controller /sys/bus/usb/devices/usb2/product:xHCI Host Controller /sys/bus/usb/devices/usb3/product:xHCI Host Controller /sys/bus/usb/devices/usb4/product:xHCI Host Controller /sys/bus/usb/devices/usb5/product:xHCI Host Controller /sys/bus/usb/devices/usb6/product:xHCI Host Controller <br> 次に、/etc/udev/rules.dディレクトリに以下のファイルを作成する。<br> sudo vi /etc/udev/rules.d/10-wakeup.rules <br> # /etc/udev/rules.d/10-wakeup.rulesファイル ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="<IDの左側の値>", ATTRS{idProduct}=="<IDの右側の値>" RUN+="/bin/sh -c 'echo enabled > /<デバイスファイルがあるディレクトリ>/power/wakeup'" <br> 最後に、PCを再起動する。<br> <br> マウス操作でスリープ / ハイバネートから復帰できるかどうか確認するには、以下のコマンドを実行する。<br> この時、マウスのデバイスディレクトリが記載されている行において、<code>enable</code>と出力されているかどうかを確認する。<br> grep . /sys/bus/usb/devices/*/power/wakeup <br> ==== ログアウト時に全てのプロセスを終了する ==== まず、/etc/systemd/logind.confファイルにおいて、以下の設定を追記する。<br> sudo vi /etc/systemd/logind.conf <br> # /etc/systemd/logind.confファイル # User Add KillUserProcesses=yes <br> 次に、PCを再起動する。<br> <br><br> == zypperコマンドでアップデートできない場合の対処 == 以下のコマンドを実行する。<br> sudo zypper clean -a sudo zypper --gpg-auto-import-keys refresh sudo zypper refresh <br><br> == デスクトップエントリファイルの更新 == デスクトップエントリファイルにおいて、自動的に更新されない場合は、以下のコマンドを実行する。<br> update-desktop-database ~/.local/share/applications または update-desktop-database /usr/local/share/applications <br><br> == F2FSファイルシステムの使用 == SUSEにおいて、古いファイルシステムの多くは、セキュリティのためブラックリストとして設定している。<br> F2FS等のファイルシステムを使用するには、SUSE向けのLinuxカーネルをユーザ自身でコンパイルする必要がある。<br> <br> ここでは、Linuxカーネルをコンパイルして、Linuxカーネルモジュールをインストールする手順を記載する。<br> <br> ==== F2FSモジュールのみインストールする方法 (推奨) ==== Linuxカーネルのソースコードをダウンロード、または、インストールする。<br> * パッケージ管理システムから、Linuxカーネルのソースコードをインストールする場合 *: <code>sudo zypper install kernel-source</code> *: <br> * Linuxカーネルの公式webサイトから、Linuxカーネルのソースコードをダウンロードする場合 *: [https://www.kernel.org Linuxカーネルの公式webサイト]または[https://github.com/torvalds/linux/tags Github]にアクセスして、対応するバージョンのLinuxカーネルのソースコードをダウンロードする。 *: あるいは、[https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/refs/tags Linuxカーネルの公式webサイトにあるGit]から、対応するバージョンのLinuxカーネルをダウンロードする。 *: ダウンロードしたファイルを解凍する。 *: <code>tar xf linux-<バージョン>.tar.gz</code> *: <code>cd linux-<バージョン></code> <br> F2FSのビルド設定を行うため、<code>make menuconfig</code>コマンドを実行する。<br> make menuconfig -j $(nproc) # または sudo make menuconfig -j $(nproc) <br> TUI画面が起動するので、[File systems] - [F2FS filesystem support]に移動して、[M]キーを押下する。<br> TUI画面下にある[Save]を選択して、上記の設定を保存する。<br> <br> Linuxカーネルから、F2FSのみをビルドする。<br> make scripts prepare modules_prepare -j $(nproc) make -C . M=fs/f2fs -j $(nproc) <br> 生成したf2fs.koファイルをXZ形式に圧縮する。<br> cd fs/f2fs xz -kv f2fs.ko <br> 圧縮したファイルを、/lib/modules/<使用しているLinuxカーネルのバージョン>/kernel/fs/f2fsディレクトリにコピーする。<br> sudo mkdir /lib/modules/$(uname -r)/kernel/fs/f2fs sudo cp f2fs.ko.xz /lib/modules/$(uname -r)/kernel/fs/f2fs <br> F2FSモジュールをデプロイする。<br> sudo depmod -a $(uname -r) <br> /etc/modprobe.dディレクトリにある60-blacklist_fs-f2fs.confファイルを、以下のように編集する。 sudo vi /etc/modprobe.d/60-blacklist_fs-f2fs.conf <br> # /etc/modprobe.d/60-blacklist_fs-f2fs.confファイル # 編集前 blacklist f2fs __THIS FILE MAY BE MODIFIED__ # 編集後 # blacklist f2fs # __THIS FILE MAY BE MODIFIED__ <br> PCを再起動して、F2FSファイルシステムが正常にマウントできるかどうか確認する。<br> <br> また、F2FSモジュールが正常に読み込まれているかどうかを確認するには、以下のコマンドを実行する。<br> sudo modinfo f2fs <br> Linuxカーネルモジュールのインストール後は、以下のコマンドを実行することを推奨する。(ファイル容量が膨大なため)<br> sudo make clean -j $(nproc) # .configファイルを残す または sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する <br> ==== カーネルモジュール全体をインストールする方法 ==== Linuxカーネルをビルドするために必要なライブラリをインストールする。<br> sudo zypper install kernel-source <br> /usr/src/linux-<カーネルのバージョン>ディレクトリに移動して、以下のコマンドを実行する。<br> cd /usr/src/linux-<カーネルのバージョン> sudo make menuconfig <br> TUI画面が起動するので、[File systems] - [F2FS filesystem support]に移動して、[M]キーを押下する。<br> TUI画面下にある[Save]を選択して、上記の設定を保存する。<br> <br> SUSEでにおいて、カーネルモジュールは、XZ形式に圧縮されている。<br> 圧縮を有効にするには、.configファイルに<code>MODULE_COMPRESS_GZIP=y</code>オプションまたは<code>MODULE_COMPRESS_XZ=y</code>オプションを追記する必要がある。<br> <u>(この設定は必須ではないが、SUSEの標準では、カーネルモジュールはXZ形式に圧縮されているため)</u><br> <br> まず、Linuxカーネルのビルドディレクトリの.configファイルを開いて、"<u>MODULE_COMPRESS</u>"を検索する。<br> 検索した"<u>MODULE_COMPRESS</u>"の直下に、以下の設定を追記する。<br> sudo vi /usr/src/linux-<カーネルのバージョン>/.config <br> # /usr/src/linux-<カーネルのバージョン>/.configファイル # ...略 CONFIG_MODULE_COMPRESS=y CONFIG_MODULE_COMPRESS_XZ=y # ...略 <br> 次に、Linuxカーネルをコンパイルする。<br> sudo make -j $(nproc) <br> Linuxカーネルモジュールのみをインストールする。<br> インストールディレクトリは、/lib/modules/<カーネルのバージョン>-defaultディレクトリである。<br> sudo make modules_install <br> 最後に、/etc/modprobe.dディレクトリにある60-blacklist_fs-f2fs.confファイルを、以下のように編集する。<br> sudo vi /etc/modprobe.d/60-blacklist_fs-f2fs.conf <br> # /etc/modprobe.d/60-blacklist_fs-f2fs.confファイル # 編集前 blacklist f2fs __THIS FILE MAY BE MODIFIED__ # 編集後 # blacklist f2fs # __THIS FILE MAY BE MODIFIED__ <br> PCを再起動して、F2FSファイルシステムが正常にマウントできるかどうか確認する。<br> <br> <u>※注意 1</u><br> <u>Linuxカーネルをアップデートした場合は自動的にF2FSモジュールが削除されるため、再度、F2FSモジュールをインストールする必要がある。</u><br> <u>もし、既にF2FSモジュールのバックアップが存在する場合、f2fs.ko.xzファイルを以下のディレクトリにコピーして、モジュール群をデプロイすることもできる。</u><br> # F2FSモジュールのコピー sudo mkdir /lib/modules/$(uname -r)/kernel/fs/f2fs/ sudo cp f2fs.ko.xz /lib/modules/$(uname -r)/kernel/fs/f2fs/ # モジュール群のデプロイ sudo depmod -a $(uname -r) <br> <u>※注意 2</u><br> <u>もし、VMware WorkStationをインストールしている場合は、併せて、Linuxカーネルヘッダもインストールする必要がある。</u><br> sudo make headers_install <br> Linuxカーネルモジュールのインストール後は、以下のコマンドを実行することを推奨する。(ファイル容量が膨大なため)<br> sudo make clean -j $(nproc) # .configファイルを残す または sudo make distclean -j $(nproc) # .configファイル等の設定ファイルを全て削除する <br> ==== F2FS Toolのインストール ==== * パッケージ管理システムからインストール *# <code>sudo zypper install f2fs-tools</code> *: <br> * ソースコードからインストール *# F2FS Toolsのビルドに必要な依存関係のライブラリをインストールする。 *#: <code>sudo zypper install libuuid-devel pkg-config autoconf libtool libselinux-devel </code> *# [https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/ LinuxカーネルのF2FS ToolsのWebサイト]から、タグが"vX.Y.Z"のソースコードをダウンロードする。<br>または、以下のコマンドを実行して、ソースコードをダウンロードする。 *#: <code>git clone https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git -b master</code> *#: <code>cd f2fs-tools</code> *# ダウンロードしたファイルを解凍する必要があれば行う。 *#: <code>tar xf f2fs-tools-1.14.0.tar.gz</code> *#: <code>cd f2fs-tools-1.14.0</code> *# Configureスクリプトを作成する。 *#: <code>./autogen.sh</code> *# ビルドディレクトリを作成する。 *#: <code>mkdir build && cd build</code> *# F2FS Toolsをビルドおよびインストールする。 *#: <code>../configure --prefix=<F2FS Toolsのインストールディレクトリ></code> *#: <code>make -j $(nproc)</code> *#: <code>make install</code> <br> F2FS Toolsの使用するコマンドを以下に示す。<br> mkfs.f2fs -l <ラベル名> /dev/sd<span style="color:#C00000">X</span> # または sudo mkfs.f2fs -l <ラベル名> /dev/sd<span style="color:#C00000">X</span> <br><br> == シャットダウンおよび再起動の待ち時間の変更 == シャットダウンおよび再起動時において、"a stop job is running for 〜"と表示されて、1分30秒の待ち時間が入る場合がある。<br> この待ち時間を変更するには、/etc/systemd/system.confファイルに、以下の設定を追記する。<br> <br> 以下の例では、待ち時間を15秒に設定している。<br> sudo nano /etc/systemd/system.conf <br> # /etc/systemd/system.confファイル DefaultTimeoutStartSec=15s DefaultTimeoutStopSec=15s <br><br> == その他のエラー対処法 == ==== 起動時にWi-Fiに接続できない ==== Linuxにおいて、直面しがちな大きな課題の1つにWi-Fiがある。<br> <br> Atheros Wi-Fiデバイスは、Linuxカーネル開発者がath10kドライバ等を介してサポートしているため、ほとんどのAtheros Wi-Fiデバイスは動作する。<br> Intel Wi-Fiデバイスは、IntelがLinuxカーネル開発者と協力しており、全てのIntel Wi-Fiデバイスが動作する。<br> <br> ===== 方法 1 ===== ハードウェアまたはソフトウェアにおけるWi-Fi接続の問題は、ハードウェアの問題かソフトウェアの問題のどちらかになる。<br> ハードウェアの問題は比較的簡単に診断できる。<br> ping localhost <br> localhostは、NICの回路をチェックするためのアドレスとして機能する。<br> 上記のコマンドが動作しない場合、ハードウェアに何らかの細工をする必要があるかもしれない。<br> 上記のコマンドが動作する場合、または、Wi-Fiモジュールが見えない場合、ソフトウェアの問題である可能性が高い。<br> <br> Wi-Fiモジュールが検出されない場合は、以下のコマンドを実行する。<br> # USB Wi-Fiを使用している場合 sudo lsusb # 内蔵型Wi-Fiを使用している場合 sudo lspci # USB Wi-Fiおよび内蔵型Wi-Fiのいずれか sudo hwinfo --wlan --short <br> また、<code>lshw</code>コマンドを実行して、Wi-Fiモジュールを認識しているかどうかを確認することができる。<br> この時、<code>configuration</code>項目の<code>driver=...</code>の値をメモする。<br> もし、<code>lshw</code>コマンドが実行できない場合、lshwをインストールする必要がある。<br> sudo zypper install lshw <br> sudo lshw -C network # 出力例 ...略 description: Wireless interface product: PRO/Wireless 3945ABG [Golan] Network Connection vendor: Intel Corporation ...略 <br> <code>lsusb</code>コマンドまたは<code>lspci</code>コマンドでWi-Fiモジュールが確認できる場合、ファームウェアは動作している可能性が高い。<br> Wi-Fiモジュールが動作しない理由は、Wi-Fiモジュールが欠落しているからである。<br> <br> 現在、使用しているモジュールの一覧を表示するには、<code>lsmod</code>コマンドを実行する。<br> sudo lsmod <br> Wi-Fiモジュールを有効にするには、<code>modprobe</code>コマンドを実行する。<br> <モジュール名>には、上記の<code>sudo lshw -C network</code>コマンドで表示された<code>configuration</code>項目の<code>driver=...</code>の値を入力する。<br> sudo modprobe <モジュール名> <br> Wi-Fiモジュールが正常に読み込まれたかどうかを確認する。<br> sudo lsmod | grep -i <モジュール名> <br> 何らかの問題により、Linuxの起動時にWi-Fiモジュールを読み込まない場合がある。<br> この時、強制かつ永続的にWi-Fiモジュールを読み込ませることができる。<br> sudo vi /etc/modules-load.d/wifi.conf <br> # /etc/modules-load.d/wifi.confファイル # ... 略 <モジュール名> <br> Linuxを再起動して、Wi-Fiモジュールが正常に読み込まれているかどうかを確認する。<br> sudo lsmod | grep -i <モジュール名> <br> ===== 方法 2 ===== まず、以下のファイルを作成する。<br> 以下の例では、~/InstallSoftware/StartWi-Fiディレクトリ下に作成している。<br> mkdir -p ~/InstallSoftware/StartWi-Fi vi ~/InstallSoftware/StartWi-Fi/StartWi-Fi.sh <br> <syntaxhighlight lang="bash"> # ~/InstallSoftware/StartWi-Fi/StartWi-Fi.shファイル #!/usr/bin/env bash echo '<パスワード>' | sudo -S ip link set wlan0 up echo '<パスワード>' | sudo -S systemctl disable packagekit echo '<パスワード>' | sudo -S systemctl stop packagekit exit </syntaxhighlight> <br> StartWi-Fiファイルに、実行権限を付加する。<br> chmod u+x ~/InstallSoftware/StartWi-Fi/StartWi-Fi.sh <br> 次に、[KDEシステム設定]を起動して、[起動と終了] - [自動起動]を選択する。<br> [スクリプトを追加...]ボタンを押下して、上記で作成したStartWi-Fi.shファイルを選択する。<br> <br> Linuxカーネルには、標準でbrcm80211ドライバが搭載されている。<br> このドライバは、bcm4313、bcm43224、bcm43225、bcm4329、bcm4330、bcm4334、bcm43241、bcm43235(>= rev 3)、bcm43236(>= rev 3)、bcm43238(>= rev 3)、bcm43143、bcm43242をサポートしている。<br> bcm4312、bcm4313、bcm4321、bcm4322、bcm43224、bcm43225、bcm43227、bcm43228 <br> これらのドライバで問題が発生する時、以下のチップセットの場合は、Packmanリポジトリからインストールできる独自のbroadcom-wlドライバをインストールすることにより、正常に動作する可能性がある。<br> sudo zypper install --from packman --allow-vendor-change broadcom-wl <br> ===== 方法 3 ===== 現在のWi-Fiの設定が記述されている/etc/NetworkManager/system-connections/*.nmconnectionファイルを編集する。<br> sudo vi /etc/NetworkManager/system-connections/*.nmconnectionファイル <br> # /etc/NetworkManager/system-connections/*.nmconnectionファイル auto lo iface lo inet loopback auto wlan0 iface wlan0 inet dhcp wpa-essid <Wi-FiのSSID> wpa-psk <Wi-Fiのパスワード> <br> wlan0インターフェースを再起動する。<br> sudo ifdown wlan0 && sudo ifup -v wlan0 <br> ==== X Windowエラー ==== マルチユーザモード(ランレベル3)から<code>startx</code>コマンドを実行すると、<code>〜 /home/ユーザ名/.serverauth.XXXX does not exist</code>メッセージが表示される場合がある。<br> これを回避するには、以下に示す2種類の方法がある。<br> * <code>systemctl</code>コマンドの使用 (推奨) *: SUSEでは、<code>startx</code>コマンドは非推奨であるため、以下のコマンドを実行してGUIを起動する。 *: <code>sudo systemctl start graphical.target</code> *: <br> * <code>startx</code>コマンドの編集 *: /usr/bin/startxファイル(シェルスクリプト)を以下のように編集する。<br> *: <code>sudo vi /usr/bin/startx</code> *: <br> *: 変更前 *: <code>xserverauthfile=$HOME/.serverauth.$$</code> *: <br> *: 変更後 *: <code>xserverauthfile=$XAUTHORITY</code> <br> ==== 一部のソフトウェアで日本語が文字化けする場合 ==== 例えば、WebブラウザでYoutubeを視聴した場合、字幕が文字化け(□□□または〼〼〼等)する時がある。<br> [YaST2] - [ソフトウエア管理]を選択して、arphic-uming-fontsをインストールする。<br> <br> 以下のコマンドを実行して、/usr/share/fonts/truetype/ipagp.ttfファイル(IPA Pゴシック)等の好みのフォントファイルにて、uming.ttcを上書きする。<br> sudo cp /usr/share/fonts/truetype/ipagp.ttf /usr/share/fonts/truetype/uming.ttc <br> ==== OSのアップデートエラー ==== SUSEのアップデートを行う時、いくつかの更新パッケージをCD/DVDドライブから取得しようとしてエラーが発生する場合がある。<br> 以下に、その例を示す。<br> Media source 'cd:///?devices=/dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7280S' does not contain the desired medium Please insert medium [openSUSE-20160205-0] #1 and type 'y' to continue or 'n' to cancel the operation. [yes/no] (no): yes File './suse/x86_64/liborcus-0_10-0-0.9.2-1.1.x86_64.rpm' not found on medium 'cd:///?devices=/dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7280S' Please insert medium [openSUSE-20160205-0] #1 and type 'y' to continue or 'n' to cancel the operation. [yes/no] (no): Problem occured during or after installation or removal of packages: Installation aborted by user Please see the above error message for a hint. <br> 上記のエラーが発生した場合、リポジトリの設定を確認して、URLがCD/DVDになっているリポジトリを無効にするか、<br> zypperに<code>--no-cd</code>オプションを付けて更新する。<br> sudo zypper --no-cd dup <br> ==== カーネルエラー ==== ブート時に、以下のエラー群が出力される場合がある。<br> これはマザーボードのBIOSの一部がLinuxに対応していないためである。<br> <br> ===== エラー sp5100-tco : Watchdog hardware is disabled ===== ウォッチドッグ機能はIPMI準拠のマザーボードでのみ利用できる。<br> したがって、この機能が存在しない場合は、このカーネルモジュールの読み込みを無効にすればよい。<br> /etc/modprobe.d/sp5100_tco.confファイルを作成して、以下のように編集する。<br> sudo vi /etc/modprobe.d/sp5100_tco.conf # /etc/modprobe.d/sp5100_tco.confファイル blacklist sp5100_tco <br> Linuxを再起動して、設定を反映させる。<br> <br> ===== エラー do_IRQ: 〜 No irq handler for Vector ===== このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。<br> sudo vi /etc/default/grub # /etc/default/grubファイル GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet splash pci=nomsi,noaer" <br> ブートローダを作成して再起動する。<br> sudo grub2-mkcongif -o /boot/grub2/grub.cfg sudo shutdown -r now <br> ==== 起動時のテキストコンソールの解像度の設定 ==== 特に、4Kディスプレイを使用する場合かつマルチユーザモード(ランレベル3)で起動する場合、起動時のテキストコンソールの解像度が最適でない可能性がある。<br> <br> Grub2では、初期画面の解像度を設定することができる。<br> また、KMS(kernel mode setting)の解像度については、カーネルパラメータを追加することができる。<br> 解像度の自動検出が正しくない場合は、これらの設定(Grub2とカーネルパラメータ)を設定する。<br> <br> 以下のように、/etc/default/grubファイルを編集する。<br> sudo vi /etc/default/grub <br> # 解像度を指定する # 以下の例では、2560x1440(WQHD)に設定している GRUB_GFXMODE=2560x1440 # GRUB_GFXMODEの下に記述する GRUB_GFXPAYLOAD=keep # カーネルパラメータ(GRUB_CMDLINE_LINUX_DEFAULT)の最後に以下の設定を追記する GRUB_CMDLINE_LINUX_DEFAULT="... ... video=1280x1024" <br> 設定を有効にするため、Grub2を更新して、OSを再起動する。<br> sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo shutdown -r now <br> ==== sensorsの使用 ==== Sensorsをインストールして実行するには、/etc/default/grubファイルの<code>GRUB_CMDLINE_LINUX_DEFAULT</code>に、以下の設定を追記する必要がある。<br> sudo vi /etc/default/grub <br> # /etc/default/grubファイル # ..略 GRUB_CMDLINE_LINUX_DEFAULT="〜 acpi_enforce_resources=lax" # ...略 <br> 設定を有効にするため、Grub2を更新して、OSを再起動する。<br> sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo shutdown -r now <br><br> __FORCETOC__ [[カテゴリ:SUSE]]
設定 - SUSE Linux
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse