2017年6月 1日 (木)

Fedora 25をメディアなしでインストールする

Fedora の Spin (派生物)の一つに Fedora Games というゲームを集めたものが存在する。今回、ふと思い立って、通常の Fedora Workstation の代わりにこの Games をインストールしてみることにしたが、インストール用の ISO ファイルをダウンロードしたところ、大きさが 4.03 GB もあり、所有している 4.0 GB の USB メモリにはギリギリ入らなかった。

そこで、以前「Fedora 18をメディアなしでインストールする」に書いたやり方で、すでにインストールしてある Ubuntu の GRUB を用いてハードディスクから ISO ファイルを直接起動できないかどうか、試してみた。

結論から言うと、無事成功した。この記事は、その覚書である。

なお、今回インストールしたのは Fedora Games である。通常の Fedora Workstation の ISO ではなぜかインストーラーが起動できない。

使用したマシンは Mac Book Pro (Retina 13-inch, Early 2015) (MacBookPro12,1) だが、普通の Windows マシンでも同じやり方が可能なはずである。

前提として、Ubuntu は外付け HDD にインストールされており、そのパーティションのデバイスパスは /dev/sdb10 である。

以下の作業は Ubuntu 上で行う。

  1. Fedora 25 Games をダウンロード」から ISO イメージファイル(Fedora-Games-Live-x86_64-25.iso)をダウンロードする。
  2. /dev/sdb10 のルートディレクトリに「Fedora」という名のフォルダーを作る(パスで言えば /Fedora)。
  3. ダウンロードした ISO を /Fedora フォルダーに移す。
  4. Fedora のインストール ISO が置かれているミラーサーバーから「vmlinuz」と「initrd.img」という二つのファイルをダウンロードする。それらのファイルは、例えば KDDI 研究所の FTP サーバーなら http://ftp.kddilabs.jp/Linux/packages/fedora/releases/25/Workstation/x86_64/os/isolinux/ ディレクトリーに置かれている。
  5. Ubuntu がインストールされているパーティションのルートディレクトリ / に「Fedora」というディレクトリを作成し(パス名でいうと /Fedora)、そこに、インストール ISO ファイルをコピーする。
  6. /boot ディレクトリ内に「install」というディレクトリを作成する。
  7. 「vmlinuz」と「initrd.img」を「/boot/install」ディレクトリへコピーする。
  8. Ubuntu の GRUB の設定ファイルに、Fedora を起動するための記述を行う。そのためには「/etc/grub.d/40_custom」の中に
    menuentry "Fedora Install" {
        set root='hd0,gpt10' ※注1
        linux /boot/install/vmlinuz inst.stage2=hd:/dev/sdb10:/Fedora ※注2
        initrd /boot/install/initrd.img
        }
    
    と書き加える。
  9. 「update-grub2」コマンドでいまの記述を GRUB に反映させる。
  10. Ubuntu を再起動する。
  11. Ubuntu が起動する過程で表示される GRUB の選択画面において、「Fedora Install」を選択する。すると、ISO から Fedora が立ち上がるはず。
  12. ISO の Fedora が起動完了したら、あとはデスクトップのインストーラーをダブルクリックし、指示に従ってインストールを開始する。

以上。


※注1
二行目の「hd0, gpt10」の部分は、筆者の Ubuntu が一番目のハードディスクの十番目の GPT パーティションにインストールされていることを意味する。環境によって適宜書き換える必要がある。例えば二番目ディスクの七番目のパーティションなら「hd1,gpt7」になる。ハードディスクの番号は0を起点にしているが、パーティションのほうは1が起点である。

なお、上記の通り、筆者の Ubuntu は外付け HDD /dev/sdb にインストールされており、これは二番目のハードディスクなのだから「hd1,gpt10」となりそうなものだが、なぜかそうはならない。おそらく、GRUB が起動する時点では GRUB がインストールされているハードディスクを一番目と認識しているということなのだろうか。


※注2
「inst.stage2=」以下で ISO の置かれた内蔵 HDD のパーティションを指定しているが、この時はなぜか「sdb」になる(内蔵 HDD を一番目と数えているようだ)。

くれぐれも「:」(コロン)が二つあることを見落とさないように。

説明しておくと、「hd:デバイス名:ディレクトリ名」となっており、この場合のディレクトリ名は ファイルを内包しているディレクトリである。ディレクトリ名だけを指定すればよく、 ファイル自体は指定する必要がない。

パーティションのトップレベルに置かれている場合は

inst.stage2=hd:/dev/sdb10:/

のようにスラッシュで終える。


(余談)
以前、「Fedora 18をメディアなしでインストールする」で試した時は、「vmlinuz」と「initrd.img」を ISO 内の isolinux ディレクトリーから取り出した。今回もそのやり方で行おうとしたのだが、ISO 内のものは「initrd.img」がなぜか 0 バイトのファイル(つまり空ファイル)となっていて、そのままそれを使って上記の方法で起動しようとすると途中で止まってしまうのである。そのため、今回はダウンロードせざるを得なかった次第である。


2016年9月21日 (水)

Sierra各種検証結果

OS X がバージョンアップするたびに個人的に調べている事項についての記事のまとめ。および、動作を確認したソフトウェアや周辺機器についても述べている。

» 続きを読む

SierraでユーザディレクトリCGI

以前「YosemiteでユーザディレクトリCGI」で述べたように、OS X Yosemite 以降では apache の仕様が若干変更になっており、Mavericks までのやり方ではユーザーディレクトリ /Users/ユーザー名/Sites を http で公開することができなくなっている(注:「ユーザー名」の部分には実際には自分のユーザーアカウント名が入る。以下同様)。

かいつまんで言うと以下の通り。

  1. /private/etc/apache2/extra/httpd-userdir.conf において、「#Include /private/etc/apache2/users/*.conf」の「#」を消す。
  2. /private/etc/apache2/httpd.conf において「#LoadModule userdir_module libexec/apache2/mod_userdir.so」の「#」を消す。
  3. 同じく /private/etc/apache2/httpd.conf において、終わりのほうにある「#Include /private/etc/apache2/extra/httpd-userdir.conf」の「#」を消す。

その上で、sudo apachectl restart コマンドで設定を apache に反映させれば /Users/ユーザー名/Sites 以下の公開が可能になる。


問題は、ユーザーディレクトリで CGI を有効にする場合である。Sierra においては Yotemite 〜 El Capitan 時代とはまた少しやり方が変更になっており、一言で言えば、少し簡単になった(.htaccess が不要になった)。

まず、/private/etc/apache2/httpd.conf において、「#LoadModule cgi_module libexec/apache2/mod_cgi.so」の「#」を消す。

次に、/private/etc/apache2/users/ユーザー名.conf を以下のように記述する。

<Directory /Users/ユーザー名/Sites>
	AddHandler cgi-script .cgi
	AllowOverride All
	Require all granted
	Options ExecCGI
</Directory>

次に SSI を有効にする方法も述べておく。SSI については El Capitan 時代より一行多く書き足す必要がある。

まず、/private/etc/apache2/httpd.conf において、「#LoadModule include_module libexec/apache2/mod_include.so」の「#」を消す。

次に、/private/etc/apache2/users/ユーザー名.conf を以下のように記述する(注:SSI だけでなく、CGI も同時に有効にすることを前提として記述している)。

<Directory /Users/ユーザー名/Sites>
        AddType text/html .shtml
        AddHandler cgi-script .cgi
        AddOutputFilter INCLUDES .shtml
        AllowOverride All
        Require all granted
        Options ExecCGI Includes
</Directory>

(「 AddOutputFilter INCLUDES .shtml」が Sierra で追加された行)

macOS SierraのSpotlightによる日本語テキストの内容検索[更新]

プレーンテキストファイルの場合

※プレーンテキストについては El Capitan から全く変化はない。

プレーンテキストファイル(拡張子.txt、.pl、.php、.c など)は、Leopard 以降の macOS 上で作成したものであればどのような文字コードであってもヒットする(文字コードを指定するメタデータがつくから)。

それ以外の OS(Tiger以前、Windows、Linux)上で作成したものは(メタデータがつかないため)Shift JIS か UTF-8 のみヒットし、EUC-JP や JIS (ISO-2022-JP) ではヒットしない。

macOS 上であってもコマンドラインプログラム(vi、nano など)で作成したものは(メタデータがつかないため) Shift JIS か UTF-8 のみヒットする。

HTML ファイルの場合

※拡張子が .html のテキストファイルについては Sierra ではかなり変化がある。

UTF-8 もしくは Shift JIS で書かれた .html ファイルは必ずヒットする(正しい HTML 構造をとっていようといまいと、<META> タグで文字コードを指定していようといまいとヒットする)。また、<META> タグ内で robots を noindex と指定していてもヒットする。

EUC-JP もしくは JIS (ISO-2022-JP) で書かれた .html ファイルは全くヒットしない(macOS 上で作成したことにより文字コードを指定するメタデータが付いていたとしても、ヒットしない。<META> タグで文字コードを指定していてもヒットしない)。

メモ.appインポートAppleScript Sierra対応版

以前、macOS 標準装備の メモ.app にテキストファイルをインポートする Apple Script を作った(「メモ.appインポートAppleScriptを作ってみた」)が、Sierra には対応していないようなので、対応版を作成した。

(※Sierra のメモ.app にはインポート機能が備わっている(メニューバーの「ファイル」→「"メモ"に読み込む」)ため、このスクリプトを使う意味はあまりないかもしれないが、インポートするフォルダーを指定することができる、一つのテキストファイルを分割してインポートできるなどのメリットがあることはある)

使用は自己責任でお願いします。

なお、使用方法は記事の最後に掲載している。

(インポートではなく、エクスポート(書き出し)するためのスクリプトも以前作成したことがある。「メモ.appエクスポートAppleScriptを作った」を参照)

※注記:
macOS Sierra 10.12.0 の時点では下の画像の通り Apple Script の選択ダイアログボックスにバグがある

今後、10.12.1 以降で修正されるかもしれない。その場合はこの注記は無視していただきたい。

» 続きを読む

2015年10月 6日 (火)

メモ.appインポートAppleScript El Capitan対応版

以前、OS X 標準装備の メモ.app にテキストファイルをインポートする Apple Script を作った(「メモ.appインポートAppleScriptを作ってみた」)が、このスクリプトは El Capitan には対応していない。

(その理由は、各メモに指定したテキストを set body of note "foo bar" to "body text" という形で貼り付けることができなくなったことにある)

そこで今回、El Capitan 対応版を作成したが、この新しいスクリプトには問題があり、インポートすると「一行目がタイトル行、二行目が空白行、三行目からがインポートされたテキスト」という形になってしまう(つまり、一行目と三行目が重複する上、二行目に余分な空白行ができる)のである。

ただ、テキストをとにかくインポートして メモ.app 上で見たり編集したりできるようにするという目的では、さほど大きな問題ではないと思われるので、とりあえず暫定的に掲載しておくことにした。

使用は自己責任でお願いします。

なお、使用方法は記事の最後に掲載している。

» 続きを読む

2015年10月 5日 (月)

El Capitan各種検証結果

OS X がバージョンアップするたびに個人的に調べている事項についての記事のまとめ。および、動作を確認したソフトウェアや周辺機器についても述べている。

注:実のところ、Yosemite 時代と全く変化しておらず、以下の記事内容は昨年書いた「Yosemite関連のまとめ」とほぼ同内容であることをお断りしておく。

» 続きを読む

«RTFDをWindows対応に変換するApple Scriptを作ってみた