linux-os雑記
マルチブート作成環境
GRUB based
- https://github.com/aguslr/multibootusb MultiBoot USB by aguslr
- https://github.com/thias/glim GLIM - Glee
- https://github.com/a1ive/grub2-filemanager GRUB2 File Manager | 基于 GRUB 2 Lua 5.1 的文件管理器。
- https://github.com/mbusb/multibootusb MultiBootUSB
- probonopd/SystemImageKit: Run (multiple) operating systems directly from image files. Add extensions, apps and configuration, which are one file each.
- https://github.com/jsamr/bootiso A Bash Script to Create a Bootable USB from ISO in Linux https://webmshare.com/play/JZrVW
- fkmclane/mkusb: a shell script to create ISO multiboot USB flash drives that support both legacy and EFI boot
DIY
- mpolitzer/grub-iso-multiboot: grab a .iso, put in a folder, boot it up.
- mytbk/liveusb-builder: A script suite to create multiboot USB stick for GNU/Linux distributions
- iosifidis/multiboot: How to create multiboot USB
- https://github.com/kilbith/smi Multiboot USB drive - ArchWiki
- xThermionix/multipass-usb: GRUB2 + USB pendrive + ISOs https://github.com/Thermionix/multipass-usb https://cloud.githubusercontent.com/assets/622615/9536234/23bf2e98-4d6d-11e5-98f8-36b155740c3b.png
- YUMI - Multiboot USB Creator | Pen Drive Linux
- LiveUSB MultiBoot
- Easy2Boot
- SARDU MultiBoot creator with legacy - EFI support
manjarolinuxアップデート失敗 libgstreamer=0.30+*
その1 libcanberra gstreamer=0.30+**
# pacman -Syu
:: パッケージデータベースの同期中...
core は最新です
extra は最新です
community は最新です
multilib は最新です
:: システム全体の更新を開始...
:: libcanberra-pulse を extra/libcanberra に置き換えますか? [Y/n] Y
:: pamac-common を extra/libpamac に置き換えますか? [Y/n] Y
:: pamac-snap-plugin を extra/libpamac-snap-plugin に置き換えますか? [Y/n] Y
:: python-dbus を extra/dbus-python に置き換えますか? [Y/n] Y
:: python-dbus-common を extra/dbus-python に置き換えますか? [Y/n] Y
依存関係を解決しています...
衝突するパッケージがないか確認しています...
エラー: 処理の準備に失敗しました (依存関係を解決できませんでした)
:: lib32-libcanberra (0.30+2+gc0620e4-5) をインストールすると 'lib32-libcanberra=0.30+2+gc0620e4-3' が破壊され lib32-libcanberra-gstreamer の依存関係が壊れます
:: libcanberra (0.30+2+gc0620e4-5) をインストールすると 'libcanberra=0.30+2+gc0620e4-3' が破壊され libcanberra-gstreamer の依存関係が壊れます
Update Error on System Update - Support - Manjaro Linux Forum
You might be blocked updating when using pacman due to some libcanberra packages. Simply remove those packages: sudo pacman -Rdd lib32-libcanberra-pulse lib32-libcanberra-gstreamer libcanberra-pulse libcanberra-gstreamer. We recommend to use pamac anyway, which does this automatically: pamac update
$ sudo pacman -Rdd lib32-libcanberra-pulse lib32-libcanberra-gstreamer libcanberra-pulse libcanberra-gstreamer.
>
その2
# pacman -S ****
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (1) expect-5.45.4-2
合計ダウンロード容量: 0.18 MiB
合計インストール容量: 0.41 MiB
:: インストールを行いますか? [Y/n] Y
:: パッケージを取得します...
expect-5.45.4-2-x86_64 188.0 KiB 612 KiB/s 00:00 [##############################################] 100%
(1/1) キーリングのキーを確認 [##############################################] 100%
(1/1) パッケージの整合性をチェック [##############################################] 100%
エラー: expect: "Allan McRae <me@allanmcrae.com>" の署名は信頼されていません
:: ファイル /var/cache/pacman/pkg/***-x86_64.pkg.tar.zst は破損しています (無効または破損したパッケージ (PGP 鍵))。
ファイルを削除しますか? [Y/n] ^C
Interrupt signal received
<!---->
sudo rm -r /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate archlinux manjaro
sudo pacman-key --refresh-keys
sudo pacman -Sc
sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring
September 8th, 2021 9:51am
バルクリネーム業界
バルクリネーム
bulk rename tools
https://github.com/dsidlo/bulkrn perl5
$ ./bulkrn.pl -f '(mwlog.wfiejb\d+)(.\d\d\d\d)(08\d\d)'
Testing the FilePattern...
FilePattern Test: applog.cluster1.20100810 => (applog.cluster1) (.2010) (0810)
FilePattern Test: applog.cluster1.20100811 => (applog.cluster1) (.2010) (0811)
FilePattern Test: applog.cluster1.20100812 => (applog.cluster1) (.2010) (0812)
https://github.com/neurobin/rnm C++
- rnm directory/file/path -ns new_name [other options]
- rnm directory/file/path -rs "/search regex/replace string/gi" [other_options]
- rnm directory/file/path -ns/f namestring/file/path
https://github.com/ketlerd/BulkRename Windows GUI
https://github.com/rrydman/BulkRename 3 years ago
https://github.com/nikitazu/BulkRename Windows GUI
https://github.com/redbluegames/unity-bulk-rename Unity Plugin
https://github.com/ke4ukz/BulkRename Windows GUI VB .net
https://github.com/NicholasLambell/BulkRename Windows GUI
https://github.com/hb/gnome-bulk-rename Python GNOME
ext3 -> ext4
tune2fs -O extents,uninit_bg,dir_index /dev/$DEV
e2fsck -fDC0 /dev/$DEV
screen alternatives
mtm
GitHub - deadpixi/mtm: Perhaps the smallest useful terminal multiplexer in the world.
C 90.3%
emux
GitHub - zolrath/wemux: Multi-User Tmux Made Easy
shell script
zellij
GitHub - zellij-org/zellij: A terminal workspace with batteries included
Screenshots
rust
abduco
abduco a tool for session {at,de}tach support · Marc André Tanner
GitHub - martanne/abduco: abduco provides session management i.e. it allows programs to be run independently from its controlling terminal. That is programs can be detached - run in the background - and then later reattached. Together with dvtm it provides a simpler and cleaner alternative to tmux or screen.
dtach
GitHub - crigler/dtach: A simple program that emulates the detach feature of screen
byobu
Byobu - Source Code
GitHub - dustinkirkland/byobu: git mirror of upstream bzr at http://launchpad.net/byobu
python?
tmux
GitHub - tmux/tmux: tmux source code
.c
shells
Five Cool Alternative Open Source Linux Shells
- bash
- tcsh
- zsh
- ksh
- fish
20 best alternatives to bash (shell) as of 2021 - Slant
- python?
- zsh
- ruby?
- dash
- tcl
- lua
- xonsh
terminal multiplexer
byobu
Byobu
GitHub - dustinkirkland/byobu: git mirror of upstream bzr at http://launchpad.net/byobu
screen
Screen - GNU Project - Free Software Foundation
screen.git - screen
tmux
Home · tmux/tmux Wiki · GitHub
yash
Yash: yet another shell - POSIX コマンドライン端末用シェル
ion
GitHub - redox-os/ion: Mirror of https://gitlab.redox-os.org/redox-os/ion
interactive httpd
HTTP Prompt - An interactive command-line HTTP client
elvish
~> curl https://api.github.com/repos/elves/elvish/issues |
from-json | all (one) |
each [issue]{ echo $issue[number]: $issue[title] } |
head -n 11
es
GitHub - wryun/es-shell: es: a shell with higher-order functions
Comparison of command shells - Wikipedia
guided shell
GitHub - denisidoro/navi: An interactive cheatsheet tool for the command-line
nushell
GitHub - nushell/nushell: A new type of shell
ksh
ast/src/cmd/ksh93 at master · att/ast · GitHub
fish
xonsh
The Xonsh Shell — Python-powered shell
the xonsh shell — xonsh 0.10.1.dev5.dev5 documentation
GitHub - xonsh/xonsh: Python-powered, cross-platform, Unix-gazing shell
dash
chatgpt4+webpilot
Recommend a filesystem for SSD
zah21は、新しいラップトップにアップグレードする予定で、SSDにどのファイルシステムを使用するかを決めようとしています。彼はこれまでExt4を使用しており、btrfsやf2fsもSSDサポートが良いと聞いています。
Ionenは、F2FSは主に「dumb」なフラッシュストレージ(USBサムドライブのようなもの)に役立つと述べています。
Goverpは、F2FSがSSDやNVMe用に設計されたこと、Samsungの人々によって設計されたことを指摘しています。
asturmと他の多くのユーザーは、ext4を使用しており、それが最も一般的で信頼性が高いと感じています。
eccerr0rは、SATA SSDはwear levelingを自動的に処理するため、フラッシュ中心のファイルシステムを実行する必要はないと述べています。
msstは、btrfsを好むが、ext4もSSDサポートがしっかりしているため、他の特徴が必要ない場合は実験する必要はないと述べています。
F2FS (Flash-Friendly File System) は、NAND フラッシュメモリデバイス向けに設計されたファイルシステムです。Linux カーネル 3.8.x 以降で利用できます。Gentoo を eMMC、SSD、SD カード、または USB フラッシュメモリデバイスにインストールする場合、このファイルシステムはいい選択肢です。
F2FS は「低機能」なフラッシュストレージ (USB フラッシュメモリなど) で非常に有用です。現代的な SSD は ext4 や xfs を使用したほうが良いかもしれません。ここでの議論 https://forums.gentoo.org/viewtopic-t-1130286.html も参照してください。
ext4 error loading journal
USBの外付けHDDがmountできなくなったことがあり、かなり慌てた。
$ mount -t ext4 /dev/sdb1 /mnt
mount: /mnt: /dev/sdb1 のスーパーブロックを読み込むことができません.
$
dmesgすると原因は判る。
[ 2137.370246] JBD2: recovery failed
[ 2137.370255] EXT4-fs (sdb1): error loading journal
ジャーナリングファイルだけが壊れてるようだ。
hard disk - Recovering an ext4 filesystem with corrupt journal - Unix & Linux Stack Exchange
mount -o ro,noloadで行けるらしい。
$ sudo mount -t ext4 -o ro,noload /dev/sdb1 /mnt
確かにmountはできた。
しかしこのままでは書き込めないので腹を括ってfsckしてみる。
$ sudo fsck.ext4 /dev/sdb1
e2fsck 1.44.1 (24-Mar-2018)
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
******: recovering journal
JBD2: Invalid checksum recovering block 43 in log
JBD2: Invalid checksum recovering block 43 in log
JBD2: Invalid checksum recovering block 43 in log
JBD2: Invalid checksum recovering block 45 in log
JBD2: Invalid checksum recovering block 49 in log
JBD2: Invalid checksum recovering block 52 in log
Journal checksum error found in ******
Pass 1: Checking inodes, blocks, and sizes
ここまで終われば、ジャーナルファイルの修復は終わってるようだ。
mountできるようになっている。
$ sudo mount -t ext4 /dev/sdb1 /mnt
ext4の非互換フィーチャー metadata_csum
ext4にはフォーマットバージョン毎に微妙かつ重大な差異があるようで、マウントできなくなる場合がある。
archlinux/linux-5.4.74/e2fsprogs-1.45.6-3でfsckしたext4を
ubuntu20.04LTS/linux-5.4.44/e2fsprogs-1.45.6-2でマウントできない。
それぞれの環境で、マウントできてるパーティションのtune2fs -L出力を比較する。
GOOD2は古い方でマウントできてるもの
BADは古い方でマウントできなかったもの。
diff -U0 で比較する。
--- GOOD2 2020-12-03 13:12:23.512724925 +0900
+++ BAD 2020-12-03 13:09:27.717610746 +0900
@@ -7 +7 @@
-Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
+Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
@@ -26 +25,0 @@
-RAID stripe width: 8191
@@ -45,0 +45,2 @@
+Checksum type: crc32c
+Checksum: 0xa30a8fa3
uninit_bgが減って
metadata_csumが増えている。
この点で検索すると、次の記事のような情報が見当たる。
2018年3月23日号 ext4のmetadata_csumオプションへの対処・initramfsの圧縮方式の変更:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
しかし,Xenialやそれより古いe2fsprogsはこのオプションが有効なファイルシステムを解釈できず,たとえばe2fsckがエラー終了するようになる(≒fsckを実行しないとマウントできない,というシチュエーションにおいてはマウント不能になる)。
新しいe2progsでフォーマットするとmetadata_csumが増えてしまう。が、後天的に取り除くのは可能なようだ。
sudo tune2fs -O ^metadata_csum /dev/sdXX
mkfs -O ^64bit,^metadata_csum -t ext4