Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
BLOGTIMES
» ArchiveList (Tag for "linux" )
«Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 · | Next»
2022/11/16

Ubuntu が contains a file system with errors で起動しなくなった場合の対処法

ubuntu  linux 
Ubunt の fs error - Ubuntu が contains a file system with errors で起動しなくなった場合の対処法

使っている Ubuntu の VM が以下のようなファイルシステムエラーを吐いて通常起動しなくなってしまったので、対処方法をメモ。

/dev/sda1: recovering journal /dev/sda1 contains a file system with errors. check forced. /dev/sda1: Inodes that were part of a corrupted orphan linked list found. /dev/sda1 : UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e.,without -a or -p options) fsck exited with status code 4 The root filesystem on /dev/sda1 requires a manual fsck BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.3) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs)

勝手にシングルユーザーモードになっているようなので、以下のように fsck による /dev/sda1 の修復をかけて無事に修復することができました。

fsck /dev/sda1 -y sync reboot

    at 18:51 |
    2022/10/29

    実際にサーバのトラブルーシューティングができる練習環境 SadServers

    systemmanagemant  networking  linux 

    SadServers という実際に Linux サーバのトラブルーシューティングを体験できる演習環境を見つけたのでメモ。
    実際にサーバ運用をしたことがあれば、Easy や Medium あたりは楽しんで挑戦できると思いますが、Hard はかなり難しいです。

    SadServers - Troubleshooting Linux Servers

    Troubleshoot and make a sad server happy!
    "Like LeetCode for Linux"
    Capture The Flag challenges. Train and prove your debugging skills.
    Practice for your next SRE/DevOps interview.
    Get a full remote Linux server with a problem and fix it.

    この演習環境のアーキテクチャについては GitHub - fduran/sadservers: SadServers.com Public で解説されていますが、1 回ごとに EC2 でインスタンスが立ち上がるようになっているようです。


      at 23:55 |
      2022/04/18

      Core Utilities 9.1 がリリースに

      linux  cli 

      Linux などの mv や cp などの基本的なコマンドの実装である GNU Coreutils のバージョン 9.1 がリリースされていたのでメモ。
      こんなツール、まだバージョンアップする余地があるの?という感じもしますが、現在でもアップデートされ続けているんですよね。

      基本コマンドをカバーするGNU Core Utilitiesがバージョンアップ | TECH+

      ddがFreeBSDと同じ動作するエイリアスのサポートや、dircolorsが環境変数LS_COLORSのカラーコードに従って表示するオプション、環境変数COLORTERMを参照するようになった。改良点はcpやmv、installを使用してディレクトリをコピーする際は、競合状態を回避するためにopenat()システムコールを使用。printfによるマルチバイト文字の数値表示をサポートした点が目立つ。


        at 23:41 |
        2021/04/27

        意図的にバグコミットして、大学がプロジェクトから ban される

        dishonesty  linux  softwareengineering 

        ミネソタ大学の博士課程の学生が脆弱性に関する実践的な研究をするために、Linux カーネルに Use After Free のバグを埋め込んだパッチを送って論文を書いた件が、大きな問題になっていたのでメモ。

        ソフトウェア関連の研究に携わっている者として、人ごとではない深刻な事態だと受け止めています。研究をしていると、やってみたいという衝動に駆られるけれども倫理上の理由で実行できないということはよくあります。

        問題の論文(On the Feasibility of Stealthily Introducing Vulnerabilities in Open-Source Software via Hypocrite Commits)についてはすでにwithdraw(取り下げ)になっているようです。

        大学においてはヒト対象実験については倫理指針が定められていて、事前審査を受けなければ実施することができませんが、ソフトウェアの世界にも倫理審査が必要な時代が来てしまうのかもしれません。以下のメールで述べられている Linux コミュニティの意見は厳しいですが至極真っ当な意見だと思います。

        Re: [PATCH] SUNRPC: Add a check for gss_release_msg - Greg KH

        Our community welcomes developers who wish to help and enhance Linux. That is NOT what you are attempting to do here, so please do not try to frame it that way.

        Our community does not appreciate being experimented on, and being"tested" by submitting known patches that are either do nothing on purpose, or introduce bugs on purpose.
        If you wish to do work like this, I suggest you find a different community to run your experiments on, you are not welcome here.

        Because of this, I will now have to ban all future contributions from your University and rip out your previous contributions, as they were obviously submitted in bad-faith with the intent to cause problems.

        参考


          at 22:59 |
          2021/02/06

          高負荷サーバでは net.core.somaxconn の設定に注意

          linux  tuning  networking 

          外部から多数のコネクションを受け付けるサーバが遅いと思ったら、コネクションを取りこぼしていました。

          具体的には net.core.somaxconn の値が Linux 5.4 以前はデフォルトが 128 とかなり小さな値で、これがボトルネックになってしまっていました。このカーネルパラーメーターは TCP ソケットの listen() のバックログのキューの深さを表しているので、多数の接続を受け付ける場合にはこれを大きくしておく必要があります。

          現在の設定値を確認するのはこんな感じでできます。

          # sysctl net.core.somaxconn net.core.somaxconn = 128

          そして、値の変更はこんな感じでできます。

          echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf sysctl -p

          プロセスが起動するときに net.core.somaxconn の値を読み込んでいることがあるので、値の反映後に httpd などの daemon も再起動してやる必要もあります。

          参考

          /proc/sys/net/ipv4/* Variables

          somaxconn - INTEGER
          Limit of socket listen() backlog, known in userspace as SOMAXCONN.
          Defaults to 4096. (Was 128 before linux-5.4)
          See also tcp_max_syn_backlog for additional tuning for TCP sockets.

            at 15:22 |
            2020/12/27

            date -d "1 month 1 day ago" とやると危ない!

            linux  cli  humanerror 

            date コマンドは -d オプションを使うと、たとえば今から 30 日前のような相対的な日付を簡単に得ることができます。
            これについては常識みたいなものですが、今更ながら思わぬハマりポイントを見つけてしまったのでメモ。

            $ date --iso-8601=seconds 2020-12-27T16:28:55+09:00 $ date -d '1 month ago' --iso-8601=seconds 2020-11-27T16:28:55+09:00

            まず ago の挙動について、coreutils のマニュアルを確認すると、-1 を掛ける(符号を反転させる)という意味だということが分かります。
            問題は、実はこの効力が unit ごとであるということです。

            つまり1ヶ月と1日前という場合にうっかり -d "1 month 1 day ago" と書いてしまうと、1ヶ月後の1日前になってしまうことになります
            複数の単位を組み合わせる場合には ago は使わずに符号を書いた方が誤解がないですね。

            $ date --iso-8601=seconds 2020-12-27T16:28:55+09:00 $ date -d "1 month 1 day ago" --iso-8601=seconds 2021-01-26T16:28:56+09:00 $ date -d "1 month ago 1 day ago" --iso-8601=seconds 2020-11-26T16:28:56+09:00 $ date -d "-1 month -1 day" --iso-8601=seconds 2020-11-26T16:28:56+09:00

            参考

            Relative items in date strings (GNU Coreutils)

            Following a relative item by the string ‘ago’ is equivalent to preceding the unit by a multiplier with value -1.


              at 17:04 |
              2020/08/14

              LD_PRELOAD で標準ライブラリの関数の挙動を変更する

              c  linux  softwareengineering 

              Linux で LD_PRELOAD 環境変数と共有ライブラリを使うと、標準ライブラリの関数の前後に処理を挟んだり、処理を上書きしたりする簡易アスペクト指向のようなことができます。

              簡単なターゲットプログラム

              今回ターゲットにする関数はみんな大好き printf()
              今日はこんな感じのプログラムを用意しました。

              helloworld.c

              #include <stdio.h> int main(){ printf("Hello World!\n"); printf("%d\n", 2020); return 0; }

              これをコンパイルして実行すると、こんな感じの実行結果になります。

              $ gcc helloworld.c -o helloworld $ ./helloworld Hello World! 2020

              今回の目的はこの helloworld をリコンパイルせずに printf() の挙動を変更することにあります。

              [LD_PRELOAD で標準ライブラリの関数の挙動を変更する の続きを読む]

                at 23:38 |
                2020/08/08

                BootHole(CVE-2020-10713)

                linux  cve 

                Linux のブートローダー GRUB2*1BootHole というセキュリティホールが見つかっていたのでメモ。今回のようなブートローダーの問題は UEFI も絡んできますし、失敗すると OS が起動できなくなるので、いろいろと対策がめんどくさそうですね。

                JVNVU#98487886: GRUB2 にバッファオーバーフローの脆弱性

                GRUB2 は OS を起動するためのブートローダです。細工された設定ファイル (grub.cfg) を読み込ませることでヒープベースのバッファオーバーフローが引き起こされ、OS の起動前に任意のコードを実行される可能性があります。
                なお、Secure Boot を利用している場合においても本脆弱性の影響を受けます。

                参考


                at 16:55 |
                2020/07/20

                wsdd で Samba サーバを Explorer に表示する

                windows10  linux 

                セキュリティ問題で SMBv1 は最近の Windows ではデフォルトで無効化されています。

                特にそれで困ることはないと思っていたのですが、NetBIOS discovery が無効化されることによって Explorer のネットワーク上に自動的にファイルサーバが表示されないという問題が生じるようです。最近、ネットワークに NAS などが表示されなくなったなぁと思っていましたが、これは F/W 等の設定ではなくて NetBIOS discovery だったようです。

                これを NetBIOS に頼らずに解決するのが以下の wsdd というソフトウェア。
                設定もあまり難しくないですし、CentOS などでは dnf install wsdd でインストールできます。

                christgau/wsdd: A Web Service Discovery host daemon.

                wsdd implements a Web Service Discovery host daemon. This enables (Samba) hosts, like your local NAS device, to be found by Web Service Discovery Clients like Windows.

                wsdd の WSD って Web Service Discovery なんですね。
                WS-Discovery って SOAP とかウェブサービスという言葉が流行った 2000 年代初め頃は良く目にしましたが、久しぶりに見た気がします。


                  at 21:46 |
                  2020/07/13

                  Linuxでも「ブラックリスト」「スレーブ」などの用語を変更へ

                  言葉  english  linux 

                  最近の BLM 運動で人種差別的な用語を撤廃する動きが続いています。
                  これを受けて Linux でもブラックリストやスレーブなどの用語を変更することになったようです。

                  もともと僕は言葉狩りが好きではないですし、ホワイトリスト・ブラックリストはそもそも人種と関係ないと思うんですよね。
                  なにより過去のドキュメントは消えないわけで、単なるパフォーマンスとしては混乱を招くだけだと思うのですが。

                  Linuxでも「ブラックリスト」「スレーブ」などの用語を変更へ - CNET Japan

                  Linus Torvalds氏は米国時間7月10日、Linuxのカーネルコードやドキュメントでの新しい、よりインクルーシブ(包括的)な用語の使用を承認した。
                  Linux開発者らは今後、master/slave(マスター/スレーブ)やblacklist/whitelist(ブラックリスト/ホワイトリスト)の代わりに新たな用語を使用するよう求められる。


                    at 12:26 |
                    «Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 · | Next»
                    » ArchiveList (Tag for "linux" )