2020年12月14日

シェルスクリプトと改行コードの罠

これは Linux Advent Calendar 2020 の14日目の記事である。13日目はSumi-Sumiさんの 「windows in ArchLinuxで無線フルトラする」だった。「フルトラ」って「フルトラッキング」の略なのかな……VR分かんないマンなので、よく分からない。

Linux Advent Calenar、今回、(ノリとイキオイで)初めて参加したのだが、13日目迄の記事のレベルが総じて高い。ヤバい……昨年迄の分を見てレベルを確認しておけば良かった……と思っても既に後の祭り。小ネタで申し訳ないが、ちょっとしたティーブレイクという事で、ここは一つ……

閑話休題。*nix系のOSには、Windowsには無い素敵な機能が在る。そう、shebangである。ファイルの1行目に、#!に続けて、そのファイルの内容を解釈するプログラムのパスを書いて、実行パーミッションを付与しておけば、宛ら実行可能バイナリファイルのように振る舞ってくれる。

shebangの挙動は、 Git for Windows に付属しているBashでも再現されている。 Git Bash 上ではLinuxのファイル階層が再現されているので、Windows上でBashのスクリプトを開発する事も、まぁ可能だ。

さて、先日、 Git Bash 上で動作確認を行ったBashスクリプトファイルをLinux上に持っていくと、エラーが発生するという現象に遭遇した。エラーメッセージは次の通り。

-bash: ./script.sh: /bin/bash^M: 誤ったインタプリタです: そのようなファイルやディレクトリはありません
続きを読む
posted by 天井冴太 at 00:00| Comment(0) | OS | 更新情報をチェックする

2015年04月20日

Fedora21起動直後に "emergency mode" になるのを解消した(ただし、完治していない)話

何時の頃からか、PCの電源を入れてFedora21をブートしている最中にエラーが発生するようになってしまった。 "Welcome to emergency mode" から始まり、"ext4_mb_generate_buddy"が "block bitmap and bg descriptor inconsistent" 云々……rootパスワード入力プロンプトでCTRL+Dしたり、パスワード入力後 「systemctl default」 を実行すると、今度は問題なくブート出来る(ログインユーザの選択画面に移行する)のだが、どうにも気持ち悪い。

yum update」でkernelに更新が入ってから発生するようになった……ような気がする(うろ覚え)。journalって、たしかファイルシステム(ext4)関係の用語じゃなかったっけ……(適当な知識)

ググると解決法を発見。 「[SOLVED] boot into emergency mode and "dirty metadata" - FedoraForum.org」 の6つ目の投稿に拠ると、以下で解決するらしい。

  1. boot into your LiveCD or LiveUSB
  2. once logged in, open gnome-disks utility from the applications (I think its called Disks)
  3. unmount all the /dev/mapper/fedora_XXX--root & home & swap
  4. open a gnome-terminal (terminal)
  5. type su -
  6. enter your root password
  7. type fsck /dev/mapper/fedora_XXX--root
  8. if there are questions about fixing, ignoring, forcing, salvage, etc, always answer y (yes)
  9. repeat step 7 & 8 with --home & --swap just to be sure"

Fedoraのバージョン違いに因る物か、以下のような多少のアレンジは必要だったが、見事に解決。良かった良かった。インターネット万歳。

  • unmountの必要はなかった。
  • ディスクデバイスのパスは、「/dev/fedora/ほげほげ」の形式。「ほげほげ」はrootとかhomeとか、或はswap。

……と、喜んだのも束の間。今度はhibernate出来なくなってしまった。電源を再投入した時、以前のセッションが復元されない。以前はhibernateは上手くいっていたので、状況的には悪化した事になる……うーん、これは何が拙いんだ? トラブル解決の道は遠い……まぁ、こういうトラブルを自分で解決していくのも醍醐味なんだけどね。

云々
正確な内容メモするの忘れた……
ラベル:OS Fedora Fedora_21
posted by 天井冴太 at 22:53| Comment(0) | TrackBack(0) | OS | 更新情報をチェックする

2014年05月25日

Linuxツールのドキュメントがある場所

/usr/share/doc/(ツール名)

某Linuxディストリビューションに付属している或るスクリプトが使いづらいので、手元で勝手に改造している。それを、出来ればGithubで管理したいと思ったのだが、そのスクリプトファイルにはライセンスが明記されていない。manしても「そんなん知らん」と言われる。ライセンスが分からなければ、Githubで管理できない(有料版ではないので、プライベートリポジトリが作れない)。

さてどうしてもんだべと思っていたが、ある日Synapticをつらつら眺めていると、そのスクリプトがパッケージマネージャで管理されている事を発見。プロパティダイアログウィンドウの「インストール済みファイル」タブを参照すると、/usr/share/doc/ディレクトリ以下にそのスクリプト名のディレクトリが在り、その下にchangelogとcopyrightファイルが在るらしい事が分かった。copyrightにライセンスが書かれてあったので解決。

いやまぁ、「無知乙」って話ではあるのだが、こんなディレクトリが在るとは知らなかった。どうもLinuxはWindowsに比べて、どこに何があるのかが把握しづらいように思える。名前と役割が一致していないように見えるディレクトリが沢山在ったりするし。ディレクトリの命名と、その分け方はWindowsの方が優秀だね。まぁ、一企業が完全にコントロール出来るOSと、OSSで成り立っている物を比べるのは間違っているんだろうけど。

ラベル:Linux tips DOCUMENT OS
posted by 天井冴太 at 22:32| Comment(0) | TrackBack(0) | OS | 更新情報をチェックする

2014年04月10日

FreeBSDに乗り換えた…………そして挫折した

2014年4月9日、 Windows XP サポート終了

という訳で、家の Windows XP を入れているPCはどうにかしなければならない。さてどうしたものか。

ここで、今まで使った事があるOS(ディストリビューションを含む)を振り返ってみた。幾つかはバージョンナンバーまで憶えていないが、大体、古い順に次のようになる。

  1. 日本語MS-DOS (NEC PC-9800シリーズ用の奴。バージョンは忘れたが、 1.44MB FD が読めるようになる前のものだったのは確か。)
  2. N88-BASIC(86) (ROM BASIC の方。)
  3. Windows 95
  4. Windows 98
  5. Windows 98 SE
  6. Windows 2000 (無印〜SP4)
  7. KNOPPIX 3.2 日本語版
  8. KNOPPIX 5.0.1 日本語版
  9. Fedora
  10. Windows XP (無印〜SP3)
  11. Ubuntu Netbook Edition 10.04
  12. Ubuntu 〜11.4
  13. Windows Server
  14. Cranchbang 10
  15. Windows 8 (評価版)
  16. Cranchbang 11

Windows 8 に移行するのはそれはそれで利点がある。どうもあまり評判がよろしくないスタート画面だが、私は悪くないと考えている。キーボード操作を主体としているので、多くのショートカットが用意されているのも利点。何よりも、PowerShellが使えるのがでかい。

しかし、Windowsだと開発関係のツールが使いにくいんだよね。Gitとか。開発関係のツールは大体*uixの文法を前提に作られていて、それがWindowsの文法と馴染みにくいという話なんだろうけど。

さて先ほどのリストを俯瞰してみると、BSD系の経験がない事に気づいた。開発関係ツールとの兼ね合いから*nix系が望ましいし、良い機会なので採用し、環境構築を試みた。

続きを読む
posted by 天井冴太 at 21:24| Comment(0) | TrackBack(0) | OS | 更新情報をチェックする

2014年04月09日

FreeBSDの Live CD で、キーボードを日本語106キーボードに設定する方法

FreeBSD 10.0-RELEASE のインストールメディアは Live CD としても利用できる。実際に(既に何某かのOSが入っている)HDにインストールする前にその挙動を確認できて便利だが、困ったことにデフォルトのキーボードの設定が英字用のそれとなっている。常日頃から英字キーボードを利用しているならともかく、日頃、日本語のキーボードを使っている場合、キートップに印字されている物とは別の文字が出てくるのでとても切ない事になる。ので、毎回きちんと設定しなければならない。

以下で日本語の106キーボードに設定できる。

root@:~ # kbdcontrol -l /usr/share/syscons/keymaps/jp.106.kbd

FreeBSD キーボード設定/カーネル設定など」に拠ると、「jp.106x.kbd」だと CAPS LOCK キーとCTRLキーが入れ替わるらしい。確かに、そういう風にキーを入れ替えて使う人も居ると聞く。他にも「jp.pc98.kbd」と「jp.pc98.iso.kbd」というのが在ったが、これは恐らく、昔なつかし国産機PC-98x1シリーズ関係だろう(手元にPC-98x1機は無いので確認出来ていないが)。

posted by 天井冴太 at 11:38| Comment(0) | TrackBack(1) | OS | 更新情報をチェックする

2013年04月16日

Windowsの環境変数の仕様についてメモ

以下、実際の挙動を確認したりMSDNのリファレンス読んだりプログラム書いてふむふむした結果。

確認には Windows XP SP3 を利用した。現在( Windows 8 )では、また少し仕様が変わっている可能性がある。過去( Windows 2000 以前、および Windows ME 以前)は仕様が異なっていた可能性もある。そういう意味で、正確性は保証しない。もし誤りがあったら、気軽に当記事のコメント欄やTBで指摘してほしい。

続きを読む
posted by 天井冴太 at 00:47| Comment(0) | TrackBack(0) | OS | 更新情報をチェックする

2009年02月06日

VMWare PlayerにWindows 7βをインストールする(ネットも音も大丈夫!版)

Windows 7ベータ版は、当初はMSDNやTechNetを通じて開発者向けに提供。一般ユーザー向けには、米国時間1月9日に提供を開始する。

という訳で、既に約1ヶ月も前にリリースされて……

米MicrosoftのWindows開発チームは,次期クライアントOS「Windows 7」のベータ版の一般ユーザー向けダウンロード提供を米国時間2009年2月10日まで延長すると発表した。

あと数日で公開終了するらしいMicrosoftの次世代OSであるWindows 7のβ版をVMWare Playerにインストールしてみた。

……本当は公開後の連休中に既に入手し、いろいろ頭ヒネリながらインストールしていたが、今更、もう少しで公開終了というとてつもなく微妙な時期にblogにまとめてみる。いやだってzeppelが書けって五月蝿いから……

Windows 7のダウンロード

という訳で、まずはMSのサイトからWindows 7を落としてくる。私がダウンロードした時には、英語版のWindows 7のページからダウンロードした。1/13からは日本語のページも公開されている。どちらもページ上部にダウンロードページへのリンクがあるので迷う事はないと思う。英語版のページでも日本語版のWindows 7を落とす事が出来る。

.NET Passportのアカウントが必要なので前もって取得しておく事。

ダウンロード前にプロダクトキーが表示されるので、忘れずメモるなり、そのページを保存するなりすること。

1つ、注意すべき点として、ダウンロードにActiveXコンポーネントを使用する仕様となっているようだ。その為IEで無ければダウンロード出来ない。私はFirefoxで落とそうとして往生した。全く何を考えてるんだ糞MSめ!私は直リンクの掲載されているページを教えて貰って、そこからダウンロードしたが、この方法はあくまで自己責任で。

ダウンロードしたWindows 7は、ISOイメージファイルとなっている。ならば仮想CD/DVDソフトが必要になりそうだが、その必要はない。実はVMWare Playerは仮想マシンのCD/DVDドライブにISOイメージを指定できる(方法は後述する)。

仮想ディスク、設定ファイルの生成

早速インストールへと進みたいところだが、ここで困った事が1つ。そう、VMWare Playerでは仮想ディスクを作製する事が出来ない。VMWare用の仮想ディスク、及び設定ファイルの生成を行う為に、以下のツールを用意する。

vmx-MakerはLZH書庫を適当なフォルダに解凍すればOK。
QEMUの方だが、今回必要なのはQEMU付属ツールのqemu-img.exeのみ、ダウンロードしたZIP書庫からqemu-img.exeのみを、これまた適当なフォルダに展開。

vmxMakerの設定のスクリーンショット(メイン画面) vmx-Makerを起動し、各種設定を入力する。
『仮想環境の名称』には適当な名前を。ここに設定した文字列がVMWare Playerのタイトルバー部分に表示される。
『ゲストOSの種別』にはwinVistaを入力。Windows 7はWindows Vistaのマイナーアップ版だと言うし、これが無難なところだろう。
『メモリサイズ』には512を指定してみた。搭載メモリ量に余裕があるのならば、MSが必要だと主張している1GB(=1024MB)を割り当てても良いだろう
『CD-ROMにISOイメージを割り当てる』にチェックを入れ、ダウンロードしたWindows 7のISOイメージファイルを指定する。
さらに、『サウンドカード』にはes1371を指定。残りはデフォルトのままとした。

vmxMaker設定スクリーンショット(仮想ディスク作成) 『ファイル生成』ボタンを押す前に、仮想ディスクのファイルを作成する。『仮想ディスクのファイル名』欄直下の『>>』ボタンを押下。表示される『仮想ディスクの作成』ウィンドウ、『qemu-imageの場所』にqemu-image.exeのパスを入力する。『仮想ディスクの容量』はお好みで。MSは16GB要ると言っているのでそれ以上で。『ファイル作成』ボタンを押すと、仮想ディスクファイルの保存先を選ぶダイアログウィンドウが表示される。任意の保存先を選択する。

仮想ディスクファイルの作成が終了するとメインウィンドウに戻ってくるので、ここで『ファイルの生成』ボタンを押下。vmxファイル(仮想ディスクファイル用の設定ファイル)の保存場所(仮想ディスクファイルと同じ場所にするのが妥当)を指定する。

さて、これで仮想ディスクのファイル(拡張子vmdk)と、その設定ファイル(拡張子vmx)を生成できたわけだが、ここで設定ファイルを手作業で編集する。これを行わないとネットへの接続、及び音の再生が出来ない。なお、この設定はWindows 7のインストール前に完了しておく必要があるようだ。

まず、ネットに繋がるようにするには以下を設定ファイルに追記する。


ethernet0.virtualDev="e1000"

次に、音を鳴らすようにするには以下を追記。


sound.present = "TRUE"
sound.autoDetect = "FALS""
sound.fileName = "Realtek High Definition Audio"

ここで、sound.fileNameの値は、PCのサウンドカード名を入れる。デバイスマネージャで確認できるので、それを記述する事。

Windows 7をインストールする

さて、Windows 7のインストールへと進む。VMWare Playerを起動し、設定ファイルを開く。設定ファイルでWindows 7のISOイメージを指定しているので、自動的にインストーラが起動する。

以下、幾つか注意が必要そうなインストール画面をSSを交えて解説する。

Windows 7インストーラの最初の画面 Windows 7インストーラ最初の画面。地域的な設定を行う画面だが、基本的に変更しなくて良い。精々キーボードの種類ぐらいだろう。

Windows7βインストール画面:2画面目 2画面目。『今すぐインストール』を選択する。内容的に1画面目と2画面目が逆なような気もするが、気にしてはいけないのだろう。多分。

Windows7βインストール画面:メモリ不足時 なお、ここでメモリが足りないと、何も情報の表示されないダイアログボックスが表示され、インストールが進まない。この画面が出たら一度インストールを中断し、設定ファイルのmemsizeの値を増やし再チャレンジする必要がある。

Windows7βインストール画面:インストールの種類選択 お決まりのライセンス条項表示を経て、『インストールの種類』画面へ。新規にインストールする為、『カスタム』を選択する。

Windows7βインストール画面:インストール先ドライブの選択インストール先ドライブの選択。パーティション操作を行う場合は『ドライブオプション』をクリックする事でその為のメニューを表示させる事が出来る。未フォーマットの状態の筈だが、そのまま『次へ』を選んでも何の問題もなくインストールが進行する。

Windows7βインストール画面:プロダクトキーの入力 ユーザー名とコンピュータ名の入力、パスワードの入力を経て、プロダクトキーの入力画面に。Windows 7を落とす直前に表示されていたプロダクトキーを入力する。

Windows7βインストール画面:ネットワークの場所の指定 ネットワークの場所の指定。仮想マシンの場合どうなるのか。いまいちハッキリしない為ここでは『パブリックネットワーク』を選択した。

Windows7βデスクトップ画面 この後しばらくすると、仮想マシンが再起動、Windows 7が起動する。無事デスクトップ画面が表示されたらインストール成功だ。

感想とか

VMWare Playerだと、外部ツールを用意したり設定ファイルを編集したりと少々面倒だ。単純にWindows 7がβ版で、しかも仮想マシンへのインストールという特殊な環境の為の面倒くささなのかもしれない。仮想ディスクや設定ファイルの生成は、VMWare Serverを使った方が楽だったのかもしれない。

『Windows 7は早い』という評判をあちこちで見かけるが、確かに早い印象を持った。仮想マシン上、しかもメモリを512MBMS推奨値の半分しか設定していないが、ストレスをあまり感じない。

Windows 7のインストール方法の紹介はこれで終わりだ。そのうちWindows 7の機能についての紹介記事を書くかもしれない。現在プライベートが少々ごちゃごちゃしている為、書けるかどうかアヤシイが。

参考にしたページ

1GB(=1024MB)を割り当てても良いだろう
当方2GBメモリ搭載マシンで1GB割り当て多ところ、インストールは無事完了したが、いざWindows 7を立ち上げようとしたらフリーズしたようになってしまった。
メモリが足りない
私の環境では、memsize="256"時にこの現象が発生した。
posted by 天井冴太 at 15:00| Comment(0) | TrackBack(0) | OS | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。