気の向くままに辿るIT/ICT/IoT
システム開発

軽量ディストロてんこ盛りレスキューLive USBの有用性

ウェブ造ホーム前へ次へ
軽量ディストロてんこ盛りレスキューLive USBの有用性は?

軽量ディストロてんこ盛りレスキューLive USBの有用性

軽量ディストロてんこ盛りレスキューLive USBの有用性

2016/10/02

 WindowsやLinux、*BSDを対象として8GBのUSBメモリにSystemRescueCd、Trinity Rescue Kit、AVG Rescue CD、F-Secure Rescue CD、Comodo Rescue Disk、PLoP Boot Manager、FreeDOS、Live版を含むFreeBSDのインストーラ、メインとして使っているNetBSDのインストーラ兼アップデータをマルチブート構成としたLive USBを作ってみました。(個々の詳細は後段にリンクあり。)

 途中、CentOS/Fedora/Debian/Ubuntu/OpenBSDなどのインストーラも入れました(同じく後段にリンクもあります)が、利用頻度、必要性などの観点から最終的に除外。

 自身は別のUSBメモリに入れていますが、必要なら更にWindows PE、それよりもWinBuilderで作ったGUIオリジナルVistaPE/7PE/8PE...も一緒に入れておいてもよいかもしれませんね。

 Winbuilderで作ったものは、シンプルなものでも200MB超にはなるでしょうし、最近のWinbuilderはツールが更に充実しているようなので入れるツールの数にもよりますが、これを含めても8GBのUSBメモリに収めることは、十分可能でしょう。

 空き領域は、フォーマットしておけば、マウントして保存用に使うことができるのもUSBメモリの利点、そうした観点から更に余裕を持って16GB、32GB...という選択もありでしょう。

 但し、詳細は後段のリンク先に譲りますが、BIOSのブート選択肢にUSBがないPCがあってPLoP Boot Managerを使いたい場合、8GBに止めておくが無難かもしれません。

有用性・軽量・即席を重視

 尚、このLive USBでは、OS検証ではなく、パーティションファイルシステム操作、クローニングやリストア、バックアップなどを含むリカバリ・リペア、ウイルススキャン・駆除などレスキューツールを想定していることもあり、当然、『有用』であり、かつ『軽量』で概ね200MB以内で軽ければ軽いに越したことはないディストロということを念頭において目についたものを任意に選定。(SystemRescueCdは500MB弱、FreeBSD、GParted、CloneZillaは200〜300MB程度、それ以外は200MB未満)

 また、できるだけ短時間(即席)で準備できるに越したことはないので、できることならISOブート、次いでファイル展開、どうしてもダメそうならddで書き込むという方向性で作成。

 尚、今回のチョイスでは、*BSD/UNIX/LinuxのLive版はインストーラ兼でCLIベースのFreeBSDとDOS系のFreeDOS Liveのみですが、CLIならLinuxベースの各ディストロでは、基本シェルに落とせますし、グラフィカル操作したい場合は、GParted Live(Debian Live/Fluxboxベース)、SystemRescueCd(Gentoo/Xfceベース)、Comodo Rescue Disk(Slitaz/LXDEベース)で十分と判断しました。

[追記:2016/11/30]
 NetBSDインストール済みLive(総サイズはX有無に関わらず、1.5GBちょいで初期内容量は、Xなし:約520MB/Xあり:約720MB)をdd埋め込みで追加。

[追記:2016/12/23]
 Kali Linux(旧Backtrack Linux=Whoppix/Whax+Auditor由来)をISOブートで追加。
 MBR形式のUSBメモリ8GBにはKali Linux Light、容量に余裕のあるGPT形式のUSBメモリ32GBには、標準Kali LinuxとLightを追加(Lightは「Kaliならではの」ツールが思いの外削られ、わずか数個しかない)。
(サイズはLightが約1.1GB、GNOME 3標準が約2.9GB)

GPT形式+GRUB 2

 理論上は無制限、今のところ128個の制限付きも基本パーティションのみ構成できる為、パーティション形式はGPTブートローダは、これをサポートするGRUB 2で。

 自身は、現状、手持ちは、BIOSマシンしかありませんが、やってみたら、USBメモリの場合、EFI/UEFIを考慮することなく、SOTEC e-oneのような古いBIOSマシンからでもGPTフォーマットしたUSBメモリを利用できることがわかった為、GPTで。

 逆にEFI/UEFIパーティションを作っていない為、EFI/UEFI環境からは起動できないと思いますが(、作ればいけるでしょうし、両方いける方法もある模様)。。。

 ちなみにgrub.cfgは、前述の通り、ISOブートやファイル展開を基本とする為、手作業で作成。

USBメモリ容量

 当初は、8GBのUSBメモリで始めましたが、他で空きが出た32GBに入れ替え。。。と思ったら、BIOSにUSBという選択肢のないe-oneの救世主PLoP Boot Managerが「GPT形式だと」32GBを認識しなかった為、8GBでも作っておくことに。

個々のディストロの機能概要

 SystemRescueCdは、テキストモードとグラフィカルモード(Xfce)を選択でき、それだけでも、かなり有用な基本的なコマンド群から成るLinuxカーネル&GNUユーザーランドにプラスアルファ便利なツールがいくつか同梱されている印象で、例えば、パーティショニングツールGParted、GNU Parted、ディスクイメージ化ツールPartimage、ファイルシステムのバックアップFSArchiver、ファイルアーカイバとして各種OSで利用可能な7zip、UNIX系tar/gzip/bzip2、Windows系zip/unzip、rar/unrar/unace、ルートキット検出ツールChkrootkitなどが同梱、ブートローダとしてGRUB Legacy(grub-install)とGRUB 2(grub2-install)も入っています。

 Trinity Rescue Kitは、テキスト形式ですが、メニュー選択のみで操作でき、シェルとの切り替えも容易、Linuxにも対応も主にWindowsを意識したリカバリ・リペアツールで最も特徴的なのが、パスワードを忘れた場合や本人でなくともリカバリできるように備えられるWindowsアカウントのパスワードリセット機能、一時ファイルの一括消去、SSHサーバ、Sambaサーバの起動もでき、ネットワーク越しのクローン作成にMClone、マシンバックアップpi、2種類のルートキット検出ユーティリティ、アンチウィルスソフトとしてAvast、BitDefender、ClamAV、F-Prot、Vexira(ClamAVのみ動作確認、BitDefenderは同意書への同意方法不明、他はダウンロード先がNot Found/Forbidden)などがあり、ブートローダとしてGRUB Legacy(grub-install)とLILOが入っています。(TRKについては、インターネット接続含め、ネットワーク関連機能を使う場合、メニューからシェルに落として単にdhcpcdとタイプ、Enterキーを押すだけですが、こうして手作業でDHCPクライアントを起動し、IP割り当てする必要あり。)

 壊れかけディスクの救済や新しいディスクへのクローニングツールClonezillaは、テキストベースもメニュー形式なので選ぶだけ、SystemRescueCdやTrinity Rescue Kit付属の同種ツールに不慣れ、Clonezillaの方が使いやすいという場合などに、GPartedはSystemRescueCdにも入っていますが、ベースであるDebian Liveの使い勝手含め、必要なら選択肢としてありかなと。

 アンチウイルスソフトにAVG Rescue CD、F-Secure Rescue CD、Comodo Rescue Diskと3種類、TRKのClamAVも入れると4種類のウイルス検知ができるので好きなものを選ぶもよし、複数でチェックしてより万全を期すもよし、ただ、基本、検出ファイル削除、削除不能な場合はリネームとなるものもあるので仮に誤検知があるとしたら微妙か。。。?

 PLoP Boot ManagerとFreeDOSは、古いパソコンや古いパソコンで使っていたアプリケーションの利用に有用な可能性が高く、前者は、HDD、CDドライブ、USBメモリなどを自動検出、メニュー選択で起動でき、特にBIOSにUSBの選択肢がないが、USBブートしたい場合に重宝、後者は、BIOSアップデートにDOSが必要なケースや今の時代でもたいていのDOSアプリケーションを利用できたり、仮想マシンにWindows 95/98、時にMEや2000、XPを入れたい場合などに重宝するでしょう。

 忘れがちですが、GRUB 2(やGRUB Legacy)も有力なレスキューツールの1つであり、パーティションを越えてアクセスできるので正常に機能する、起動できなくなりつつある、起動できなくなったHDDなどに入ったWindowsやLinux、*BSD、PC-UNIXなどOSの起動を試みたり、ファイルシステムが認識される状態であれば、lsでそれらの中身を確認でき、USBメモリに入っていれば、なおのこと、あらゆるマシンで活躍します。

[追記:2016/11/30]
 NetBSD Liveは、作成時にカスタマイズもできますが、カスタマイズは考えないものとすると、Xなしの標準システムとXあり(環境変数の設定もしくは、フラグを付けるだけ)を簡単に作成することができ、初期状態でstartxとして起動するのは、twm、必要なら追加・変更も可能、USBメモリにdd埋め込みであることもあり、既存サイズで不足なら拡張もできる模様、敢えて外さなければmanも一通り入っており、何れにしても完全なNetBSDシステムがUSBメモリに入っている状態ですから(特にNetBSDユーザーなら)何をするにも文句なしです。

[追記:2016/12/23]
 Whoppix/Whax+Auditor由来らしき旧Backtrack Linuxから派生、実質、後継となったKali Linuxは、当該組織(自身)が管理できる内部、ローカルのネットワーク上でペネトレーションテストを行うことを意図したDebianベースのディストロで標準(GNOME 3)やMATE版、LXDE版には、業務上のシステム監査やシステム管理が想定されるとは言え、全てを把握してテストできてる人っていないよね?まさか、いるの!?でも作った人たちがいるんだからいるのか。。。というほどの相当数のツールが満載ですが、クロスプラットフォームだったり、汎用性があったりするものが多い一方、中にはCisco専用とかOracle専用とか、はたまた対象とするソフトウェアが古すぎるものも含まれます。
(尚、Lightは、ツールがなくなった分、ライトなのか。。。というほど、少なくともデスクトップメニューから利用できる、Kaliらしいツールは数個とかなり少なくなっています。)
 ちなみに今回使っている2016.2のバージョンではLightではFirefox ESRとiceweaselがあり、両方共起動しますが、Firefox ESRのみある標準(GNOME 3)では起動しません。
 また、ISOブートだからか、アプリによっては、ポップアップが残ったまま消えないものもありました。
 更にKali Liveではそういったことはありませんが、Kali Live[Light]を使用後、再起動すると当該PC(の起動時のOS)の日付時刻が9時間ズレます。
これらは、きっと次のリリースでは直るでしょう。

Live版の注意点

 Live版で留意すべき点は、特にLinuxベースの場合、近年カーネルのアップグレード頻度が高い為、現行カーネルと異なることも多いし、特別なドライバ・チップは(そもそも多すぎて選択も困ると思われ)組み込まれないことも珍しくなさそうなことから、例えば、内蔵NICなら対応もUSB接続LANアダプタなどに対応するネットワークインタフェース(というかドライバ・チップ)がない可能性が高いことでしょう。

 尚、ネットワーク(インターネット)を使いたい場合、起動直後から自動接続(IP割り当てまで)されているものは数少なく、アイコンやメニューなどで専用メニューを設けているケースでは、それらを利用して、特にそうしたツールやメニューがない場合には、ネットワーク自体は起動し、接続可能状態になっているはずなのでシェルに落として手作業でifconfigなどを使ってnetwork:activeとなっているネットワークデバイスを探し、固定、もしくは自動(DHCP)なら、必要に応じてsudoを付けるなどしてdhclientやdhcpcdなどの引数にネットワークデバイス渡すなどすることで、何れにしても明示的に接続する必要があります。

[追記:2016/12/23]
 日本語環境については、少なくとも、ここで作ったレスキューLive USBに入れたディストロは、日本語キーボードを選べるものは多い一方、デフォルトで日本語の表示・入力に対応したものはなく、唯一、GParted Liveについては、ブラウザ(NetSurf)が日本語表示対応も日本語入力は未対応、例えば、NetBSD LiveのようにシステムそのものであるLive版でUSB用の.imgをdd埋め込みした場合には、構成ファイルの編集や各種パッケージの追加で対応できるでしょうが、容量は嵩むと思われます。

wc結果(インストール済みパッケージ数162)
162 1054 9979
 
live# df -h
Filesystem Size Used Avail %Cap Mounted on
/dev/dk3 3.0G 2.6G 249M 91% /
ptyfs 1.0K 1.0K 0B 100% /dev/pts
live#
 
live# pkgin ls
adobe-flash-plugin-11.2.202.637 Adobe Flash Player Browser plugin
anthy-9100h Kana Kanji conversion system
at-spi2-atk-2.20.1 Assistive Technology Service Provider Interface A11y Toolkit
at-spi2-core-2.20.2 Assistive Technology Service Provider Interface Core
atk-2.20.0 Set of interfaces for accessibility
avahi-0.6.32nb2 Facilitate service discovery on a local network
boehm-gc-7.6.0nb1 Garbage collection and memory leak detection for C and C++
cairo-1.14.6 Vector graphics library with cross-device output support
cairo-gobject-1.14.6 Vector graphics library with cross-device output support
consolekit-1.0.2nb1 Framework for defining and tracking users, login sessions, and seats
curl-7.51.0 Client that groks URLs
dbus-1.10.10 Message bus system
dbus-glib-0.108 GLib bindings for the D-BUS message bus system
desktop-file-utils-0.23 Utilities to manage desktop entries
enca-1.15 Extremely Naive Charset Analyser
ffmpeg3-3.1.3nb1 Decoding, encoding and streaming software (v3.x)
fftw-3.3.5 Collection of fast C routines to compute DFTs
firefox-49.0 Web browser with support for extensions (version 49)
firefox-l10n-49.0 Language packs for www/firefox (version 49)
flac-1.3.1 Free lossless audio codec
fribidi-0.19.7 Free Implementation of the Unicode Bidirectional Algorithm
gdbm-1.12 The GNU database manager
gdk-pixbuf2-2.36.0 Image loaders for gtk2
gdk-pixbuf2-xlib-2.36.0 Image loaders for gtk2
giflib-5.1.4 GIF image format library
glib2-2.48.2 Some useful routines for C programming (glib2)
gobject-introspection-1.48.0 GObject Introspection
gpicview-0.2.5nb1 Lightweight image viewer
grub2-2.00nb5 GRand Unified Bootloader, version 2
gst-plugins0.10-base-0.10.36nb10 Open source multimedia framework - Base plugins
gstreamer0.10-0.10.36nb9 Open source multimedia framework
gtk2+-2.24.31 GIMP Toolkit v2 - libraries for building X11 user interfaces
gtk2-engines-2.20.2nb19 Theme engines for GTK+ version 2
gtk3+-3.20.9 GIMP Toolkit v3 - libraries for building X11 user interfaces
harfbuzz-1.3.1 OpenType text shaping engine
hicolor-icon-theme-0.13 Standard icon theme called hicolor
hunspell-1.3.3nb4 Improved spellchecker
icu-57.1 Robust and full-featured Unicode services
imlib2-1.4.9 Image manipulation library
ipaexfont-00201nb1 IPAex fonts (fixed JIS X0213 Kanji, and proportional ASCII)
ipafont-00303nb1 IPA JIS X 0213 fonts (Gothic, P Gothic, Mincho, and P Mincho)
jbigkit-2.1 JBIG-KIT lossless image compression library
jpeg-9b IJG's jpeg compression utilities
json-c-0.12.1 JSON library in C
kasumi-2.5nb21 Dictionary management tool for anthy
keybinder-0.3.0nb1 Library for registering keyboard shortcuts
lame-3.99.5nb3 Fast, high quality MP3 encoder
leafpad-0.8.17nb22 Simple and light text editor using GTK+
libIDL-0.8.14nb4 CORBA Interface Definition Language parser
libarchive-3.2.1nb2 Library to read/create different archive formats
libass-0.13.1 Portable subtitle renderer for the ASS/SSA subtitle format
libatomic_ops-7.4.4 Multi-platform library of atomic operations by Hans Boehm
libdaemon-0.14nb1 C library that eases the writing of UNIX daemons
libelf-0.8.13nb1 ELF object file access library
libepoxy-1.3.1nb3 Library for OpenGL function pointer management
libexif-0.6.21 EXIF file library
libffi-3.2.1nb1 Foreign function interface
libflashsupport-4.2.2011 Additional Interface Support for Linux Flash Player
libfm-1.2.4nb1 File management library
libfm-extra-1.2.4nb1 File management library (extra)
libglade-2.6.4nb23 Runtime interpreter for GLADE GUI files
libidn-1.32 Internationalized Domain Names command line tool
libltdl-2.4.2 Generic shared library support (libltdl abstraction library)
libogg-1.3.2 Ogg project codecs library
libsamplerate-0.1.8 Sample rate converter library
libsndfile-1.0.27 Library for reading and writing audio files
libtheora-1.1.1nb2 Video codec for Ogg multimedia streaming
libunique-1.1.6nb22 Library for writing single instance applications
libvorbis-1.3.5 Library for the Ogg Vorbis audio encoding format
libvpx-1.6.0 On2 VP8 library from Google
libwnck-2.30.6nb19 Library to write pagers and tasklists
libxfce4ui-4.13.0nb1 Xfce widget library
libxfce4util-4.12.1nb2 Xfce basic library
libxml2-2.9.4nb1 XML parser library from the GNOME project
lxappearance-0.6.2nb1 GTK+ theme switcher
lxde-1.0 Lxde
lxde-common-0.99.1 Default configuration settings and scripts for LXDE
lxde-icon-theme-0.5.1 LXDE icon theme
lxinput-0.3.5nb1 Simple graphical front end to configure keyboard and mouse
lxlauncher-0.2.5nb1 Program launcher for small screens
lxmenu-data-0.1.5 LXDE menu data
lxpanel-0.8.2nb2 Lightweight X11 desktop panel from LXDE
lxrandr-0.3.1nb1 Simple graphical front end to the xrandr extension
lxsession-0.5.2nb1 Session manager for LXDE
lxtask-0.1.7nb1 Lightweight desktop-independent task manager
lxterminal-0.2.0nb1 Desktop-independent VTE-based terminal emulator with tabs
lzo-2.09 Portable lossless data compression library
menu-cache-1.0.1 Cache for freedesktop.org menu spec
mozilla-rootcerts-1.0.20160610 Root CA certificates from the Mozilla Project
nspluginwrapper-1.4.4 Use Netscape compatible plugins from other platforms
nspr-4.12nb2 Platform-neutral API for system level and libc like functions
nss-3.25nb1 Libraries to support development of security-enabled applications
obconf-2.0.4nb3 Tool for configuring the Openbox window manager
openbox-3.6.1nb1 Standards compliant, light-weight, and extensible window manager
orc-0.4.26 Compiler for vector operations
p5-Business-ISBN-3.002 Perl5 module to work with International Standard Book Numbers (ISBNs)
p5-Business-ISBN-Data-20140910.003nb1 Data for the p5-Business-ISBN package
p5-URI-1.71nb1 Perl5 Uniform Resource Identifiers class (URI, RFC 2396)
pango-1.40.3 Library for layout and rendering of text
pcmanfm-1.2.4nb1 Extremly fast and lightweight file manager
pcre-8.39 Perl Compatible Regular Expressions library
perl-5.24.0 Practical Extraction and Report Language
pkg_install-20160410nb1 Package management and administration tools for pkgsrc
pkgin-0.9.4nb3 Apt / yum like tool for managing pkgsrc binary packages
png-1.6.25 Library for manipulating PNG images
polkit-0.113nb3 Authorization Manager
pulseaudio-9.0 Sound server for POSIX and Win32 systems
py27-cElementTree-2.7.12 C implementation of Python ElementTree API
py27-expat-2.7.12 Python interface to expat
python27-2.7.12nb4 Interpreted, interactive, object-oriented programming language
scim-1.4.15nb5 Smart Common Input Method
scim-anthy-1.2.7nb23 SCIM IMEngine module for anthy
shared-mime-info-1.7 Core database of common types
speex-1.2rc2 Open-source, patent-free voice codec
speexdsp-1.2rc3 Open-source, patent-free voice codec DSP library
spidermonkey17-17.0.0nb1 Standalone JavaScript implementation in C
sqlite3-3.14.2 SQL Database Engine in a C Library
startup-notification-0.12nb3 X11 application startup notification library
suse_alsa-13.1nb2 Linux compatibility package for ALSA
suse_base-13.1nb10 Linux compatibility package
suse_cyrus-sasl-13.1 Linux compatibility package for Cyrus SASL
suse_expat-13.1 Linux compatibility package for expat
suse_fontconfig-13.1nb1 Linux compatibility package for fontconfig
suse_freetype2-13.1nb1 Linux compatibility package for freetype-2.x
suse_glib2-13.1nb1 Linux compatibility package for GLib-2.x
suse_glx-13.1nb4 Linux compatibility package for OpenGL/Mesa
suse_gtk2-13.1nb7 Linux compatibility package for GTK+-2.x
suse_krb5-13.1nb3 Linux compatibility package for kerberos libraries
suse_libcurl-13.1nb6 Linux compatibility package for libcurl
suse_libdbus-13.1nb7 Linux compatibility package for DBus
suse_libdrm-13.1 Linux compatibility package for libdrm
suse_libffi-13.1 Linux compatibility package for libffi
suse_libidn-13.1nb1 Linux compatibility package for libidn
suse_libjpeg-13.1nb1 Linux compatibility package for JPEG
suse_libjson-13.1nb1 Linux compatibility package for libjson
suse_libpng-13.1nb4 Linux compatibility package for PNG
suse_libsndfile-13.1nb2 Linux compatibility package for libsndfile
suse_libssh-13.1nb1 Linux compatibility package for libssh
suse_libtiff-13.1nb2 Linux compatibility package for TIFF
suse_libwrap-13.1 Linux compatibility package for libwrap
suse_libxml2-13.1nb3 Linux compatibility package for libxml2
suse_mozilla-nspr-13.1nb4 Linux compatibility package for Mozilla NSPR
suse_mozilla-nss-13.1nb5 Linux compatibility package for Mozilla NSS
suse_openldap-13.1nb1 Linux compatibility package for OpenLDAP
suse_openssl-13.1nb13 Linux compatibility package for OpenSSL
suse_pulseaudio-13.1nb3 Linux compatibility package for Pulseaudio
suse_x11-13.1nb6 Linux compatibility package for X11
tiff-4.0.7 Library and tools for reading and writing TIFF data files
tightvncviewer-1.3.10nb2 Viewer for remote X and Win32 VNC servers
ttmkfdir2-20021109nb6 Tool that creates a fonts.scale file
vera-ttf-1.10nb5 Bitstream Vera TrueType fonts
vte-0.28.1nb17 Terminal widget with improved accessibility and I18N support
x264-devel-20160307nb1 GPL licensed H.264 encoder
xcb-util-0.4.0 XCB Utilities
xfce4-conf-4.12.0nb4 Xfce client-server configuration storage and query system
xfce4-exo-0.10.7nb2 Xfce extension library
xfce4-garcon-0.5.0nb1 Xfce menu library
xfce4-mixer-4.11.0nb2 Xfce mixer plugin
xfce4-panel-4.12.0nb3 Xfce panel
xmlcatmgr-2.2nb1 XML and SGML catalog manager
xprop-1.2.2 Property displayer for X
xvidcore-1.3.3 ISO MPEG-4 compliant video codec
live#

[追記:2017/01/13]
 試しにNetBSD Liveで日本語表示・入力できる環境を作ってみました。
 GENERICカーネルで標準的なreleaseから生成されるUSB用のsd0版live-image(総量約1.55GB、内容量700MB強)を前提にするものとします。
 twm上でも日本語表示は、xterm上でもでき、日本語入力については、scim+anthy、ipafont/ipaexfont(各種Xアプリ用)を使い、leafpadに入力できる環境で実容量約2.2GB程度、更にLXDE(Openbox含む)、ファイルマネージャ、VNCクライアント、Firefox(Flashプラグイン・言語パック*l10n*含む)、依存関係にあるパッケージ諸々で約2.8GB程度あれば、ブラウザやテキストエディタに日本語の表示・入力ができるプラスアルファの、そこそこの環境が整いました。
 尚、ddするパーティションをあらかじめ必要容量確保しておくか、もしくはdd後に拡張するなりすれば、NetBSDにおけるデバイス/dev/dk?であってもresize_ffsできるのでUSBメモリに余裕があれば、MBR形式・GPT形式に関わらず、ファイルシステムも簡単に拡張でき、状況に応じて増量する(現行、FFSv1なら減量・縮小)なんてことも可能です。
 OSに関わらず、USBメモリにUSB用イメージを書き込んだ場合、読み書き速度はHDDよりも低速なUSBの仕様(検証に使ったのはUSB 2.0)に依存するので何かと遅くはなりますが。

感想

 何はともあれ、こんなに詰め込んでもUSBメモリも8GBで十分。

 軽量なものを選定、それらのほとんどがISOブート、ファイル展開が必要なTRKもその量はたいしたことなく、埋め込みが必要となったFreeDOSとFreeBSDもサイズが小さいのでダウンロードにしてもddにしてもかかる時間は極わずかといった具合で簡単・軽量・短時間で完成。

 8GBのUSBメモリでも、まだ、余裕がありますが、とりあえず、これだけあれば、*BSD、Linux、Windowsマシンでも、古いものから新しいマシンまで有事の際でも、たいていの場合、適切な対応ができるでしょう。

[追記:2016/12/19]
 ただ、レスキューと言ってもそんなにしょっちゅう緊急事態が起きるわけではなく、というか、度々起きてもらっても困るわけで、実際には、NetBSD Liveを入れてからは、USBメモリの消耗はさておき、メインのノートにおいて換装したSSDを浪費しないで済む(ひいては長持ちする)か?という思いもあり、NetBSD Liveでできることは、これで済ませたり、Liveで十分な場合は、Linux環境として各種ツールのベースとなっているDebianやGentooを使ったり、先のようにCloneZillaやGPartedを使うだけが目的の場合はそれらを起動させたりと、必要性からではなく興味本位で始めたものの、作ってみると結構、使い途はある(何かと使おうという意思が働く)もので普段使いに重宝しています。

 もちろん、その必要があるなら、嵩張ることなく、手慣れたシステムやレスキューツールをストレージ込みで持ち歩くことができ、外出先に利用可能なPCさえある場所ならば、いつでも、どこでも、これらシステムやツールを手軽に使うできるという点は、この上なく大きなメリットとなるでしょう。

Live USBを作るに至った経緯

 手持ちのWindowsマシンの内、1台は既にセキュリティサポート期限が切れた98 SEマシン、もう1台は、そろそろ期限切れが迫るXPという状況下で、まだ残存期間のあったVistaマシンのHDDが壊れ、OS、データの救出ができなくなったりしつつもPC自体はどれも健在という中、メインで使っていたとはいえ、古いPCに最新のWindowsを買ってきて入れるというのは論外、そもそもPCとセットには慣らされつつもOSを買うという発想もない。。。ということで、必然的に仕事上、多少は触れたことのあった*BSD/UNIX/Linuxの内、フリーのものに入れ替えることに。

 興味はあったので随分前にRed Hat Linux/RHL、間をあけてCentOS登場前に無償版RHLの後継といわれていたFedora CoreといったLinuxのCD/DVDが付属した書籍を2冊ほど購入していたものの、MS-DOSやWindows含め、インストールするとなると初めて。。。そんな時、ちょうど仮想化ソフトウェアの存在を知り、QEMU、VMware Player、VirtualBox。。。を使ってインストールの練習かたがたWin 95/98/XP/Vista/7...を仮想化、結構、多くの*BSD/UNIX/Linuxディストロを試し、実機でも試しておきたいということで手持ちで最も古いsotec e-oneを練習機にすることにした為、軽量なディストロに絞って探すことに。

 当初は、Linuxしか頭になく、軽量で有名だったDamn Small Linux、Tiny Core Linux、Puppy Linuxなどのディストロを試すも、今からすれば何れもより非力なマシンがメインストリームだった時代に軽量化していたこともあり、その一環でコマンドやコマンドオプションの簡略化(Busybox)もしており、何かと検索して調べてやってみようと思うと省略されてて使えないといった不便さやカーネルが固定で古いといったような点に物足りなさを感じ、ディストロでありつつ、最小構成から積み上げられるArch LinuxやGentooに惹かれるもGentooは仮想マシン上でのインストール時点で失敗、Arch Linuxに絞り、思いつくものを詰め込んだらどのくらいになるのだろう。。。と自身初のLive CD(DVD)を作ってみたら、e-oneはCDドライブが壊れててPavilion Slimlineでは起動したけど、dynabook Satelliteだと起動しない。。。マシンとの相性もあるのか。。。外付けCD/DVDドライブも買ってみたが、変わらず。。。しばらくするとArch LinuxやGentooもカーネルの影響と思われる最小要求スペックがあがり、検討対象外に。。。ということで検証で最軽量だったNetBSDとOpenBSDに目が向き、なんとなく、NetBSDを選択してみるとどのマシンでも良好な模様でした。

 マシンへのインストールを考えた場合、CD/DVDよりUSBメモリの方が何かと良いだろう。。。と思って買ったのが8GBのUSBメモリ。

Live USB構成を検討

 NetBSDは、仮想マシンをいくつも作って結構、いろいろ試してみたものの、多くのLinuxほど手軽ではない為、慣れが要る。。。それまでLinuxも。。。メインで使っていたPavilionにと当初、DebianFedoraで迷ってFedoraを選択したものの、のちにNetBSDはもとより、Debianもマルチブート。。。そうは言ってもNetBSDのインストーラはカーネルのアップグレード兼ねているから別としても、たいていのインストーラについては、大量にPCがあるわけでも、全てのマシンにそれら全てを入れるわけでもないとなると、せいぜい1〜2回のインストールの為にUSBメモリに書き込むのもな。。。なんて思いつつ。

 どうせなら複数のディストロを入れてマルチブートさせよう。。。USBに入れるには。。。GUIのツールもあるみたいだけどCD/DVDのマルチセッションを試した時もそうだったが、UNetbootinとかも万能ではない模様。。。それならddで作ればいいのか、palm84さん(http://www10.plala.or.jp/palm84/http://d.hatena.ne.jp/palm84/http://palm84.hatenablog.com...etc.???)などの情報によれば、書き込まなくてもISOブートやファイル展開って方法もあるのか。。。ということでインストーラを中心にCentOS/Fedora、Debian/Ubuntu、FreeBSD/NetBSD/OpenBSD、更にレスキューツールとしてClonezilla、GPartedのLive版をマルチブート構成にしようと思い立ちました。

 OSのチョイスの内、前述の通り、FreeBSDはLive付き、UbuntuはCLIライブ版、NetBSDは、バージョンが上がってもそのまま使えるインストーラ兼カーネルアップデータ、他は、たいてい純粋な単一バージョン用のインストーラ。

 2TBの制限のあるBIOS+MBR形式に対し、近年、HDDの大容量化に伴い、これを越える領域にアクセスできるEUI/UEFI+GPT形式も登場、BIOS+MBRマシンしか持っていない自身としても、いろいろディストロを詰め込むにあたってMBR形式だとBIOSの制約上、基本パーティション4つ(か、3つ+論理パーティションを複数持つことができる拡張パーティション1つ)、一方、GPTは基本パーティションを論理上は無限、実際には、とりあえず128個という制限付きながら、論理パーティション非対応ディストロもある中、GPTが使えたら便利と思うに至りました。

 実際、GPartedでもEFI/UEFIを考えることなく、GPT形式にフォーマットできるし、そのままだとEFI/UEFIマシンからは無理かもしれないが、パーティションテーブルがMBRだろうが、GPTだろうが、パーティションが区切られているだけなのだから、ましてUSBメモリならHDD/SSDより制約は少ないだろうし、EFI/UEFIと無縁ならGPT形式にしたとしてもBIOSマシンから起動できるのでは?と試してみたら、あっさり、でき、ブートローダは必然的にGPT対応のGRUB 2を使うことに。

 ネットにもBIOSマシンで使うことに主眼を置き、USBメモリをMBR・EFI/UEFIを考えることなく、GPT形式でフォーマットした例も、これらツール類についてGRUB 2のgrub.cfgにおけるmenuentryの書き方も、そもそもなかったり、他国語情報はあっても日本語情報がないように思われた為、書いておくことに。

 結果からすると基本パーティション、論理パーティション以前にISOブートやファイル展開で起動できるものばかりでISOブートでは微妙だったFreeDOS、*BSDにおいてはISOブートだとインストーラはともかく、loopbackでは無理そうなLive版を含むからかFreeBSDは、基本パーティションかつ埋め込みを必要としたのは2つのみでGRUB 2用、ISO・ファイル用に基本パーティションを確保するにしても4つ(今回はFreeDOSパーティションにGRUB2をインストールした為、3つ)で事足りた為、敢えてGPT/GRUB 2にしなくてもよいといえばよいのですが。

[追記:2016/12/19]
 ふと試してみたところ、MBR形式の場合、ISOディスクイメージや展開したディレクトリ用は、基本パーティションだけでなく、論理パーティションでも各種ツールが起動することを確認できた(*注1)ので現状の必要スペースのことだけを考えると、尚更、MBR形式でも十分。
[*注1:]
 ただ、やはり、基本パーティションの方が無難かもしれません。
 例えば、ISOブートでDebian Liveを起動してみたら基本パーティションに置いた時にはなかったはずの症状としてブラウザ(NetSurf)がメニューからは素直に起動するが、アイコンをダブルクリックするとSSL証明書云々で使えなかったり、pingがsudoを使わないと権限エラーになったり、いくつかの不可思議な点が見受けられましたし、マシン依存もあるかもしれないので。)

取捨選択

 CentOSとUbuntuは、選定の過程で魅力は感じなかったものの、ISOブートの手法の違いにハマってやってみたに過ぎず、FreeBSDとOpenBSDもNetBSDありきで同じ*BSD系だしついでに。。。という感じ、Clonezillaは、破損ディスクのイメージ化や古いディスクから新しいディスクへのクローンを作る為、GPartedは、ファイルシステムを含めたパーティションの作成・削除、移動、拡張・縮小といった操作をグラフィカルに行なう為、有用と考えました。

 当初、8GBのUSBメモリでLive USBを作っていたのですが、ラズパイ導入後のレスキュー用USBメモリ差し替えに伴い、32GBのUSBメモリに変更、この大容量化に伴い、SystemRescueCd 4.8.0(Gentooベース)、Trinity Rescue Kit/TRK、PLoP Boot Manager、FreeDOS、アンチウイルスソフトとしてAVGレスキューCD、F-Secure(KNOPPIXベース)、Comodo Rescue Disk(Slitazベース)を入れ、容量には十二分に余力はあるも一方、CentOS/Ubuntu/Fedora/OpenBSDは外すことに。

 しかし、BIOSにUSBブートの選択肢がないsotec e-oneに重宝するPLoP Boot Managerが、この32GBのUSBメモリを認識しない模様。。。原因不明も32GBどころか、8GBでも十分なので平行して8GBも作っておくことに。

 たいていのインストーラ・アップデータは、最新版のインストールには、最新版のインストーラがいること、CentOSについては、USBメモリからブートできることの確認はできたし、この先もインストールする予定は、まずない、Ubuntu CLI Liveは、GRUB(grub-install)もあって便利でしたが、これは、GParted LiveやSystemRescueCd、TRKなどにもあるので除外。

 Fedoraは、Pavilionに入れてあるし、NetBSDをメイン、他はサブという中、先進的なディストロ故に日常的に使うコマンドなども変更が多発したりで追従するのは結構面倒なのでFedoraが動くマシンは1台あればよく、他に入れる予定がない。

 OpenBSDは、FreeBSDと合わせてNetBSDとの入れ替えの可能性も含めて検討した際、やはり、NetBSDを使うことにした為、とりあえず今回は、外すことに。

 FreeBSDも同様だったものの、近年、Linuxもそうですが、*BSDのLive版はCD、USB共に微妙な状況にある中、Live版から*BSDを読み書きできる状態でマウントしようと思った場合、Linuxからだとカーネルオプションの変更が必要で、そうした変更を施したものがないこと、*BSD間なら基本デフォルトで可能もインストーラから抜けることで使えるシェルはコマンド類も相当限定的な模様、([追記:2016/11/30]ほどなくしてNetBSD Liveを簡単に作ることができることを知ることになるが、その前だったこともあり、)軽量かつ最新の*BSDのLive版となるとインストーラとLiveが選べるFreeBSDのインストーラが妥当ということで残すことに。(Install以外のLiveとShellは同じような気がして違いがわかりませんが。)

 メインとして使っているNetBSDのインストールやアップグレード方法にはいくつかありますが、このインストーラ・アップデータは、一致するバージョンのパスを設定可能な為、古いまま使い続けることもできて便利、差し替えるにしてもboot専用のboot.isoやboot-com.isoなら超軽量でダウンロードもあっという間、他方loopbackした場合、/netbsdや/sysinstを直接指定できないみたいだからUSBメモリにddなどで埋め込む必要がある一方、容量は嵩むけどNetBSD-${uname -r}-${uname -m}.isoだと圧縮されたカーネルも入っていてこれを指定することでインストーラ・アップデータをISOブートできる。。。ダウンロードと仕込む時間を考え合わせると前者の方が環境に依存せず、早いか。。。今回は、この機会を利用してISOブートできた後者で7.0に入れ替え。

 実用性というより、思いつきで始め、GPT+GRUB2での起動検証がてらのLive USB作りですが、レスキュー用途ならリカバリ・リペア、ルートキットやウイルス検知も必要か。。。ということで任意に選んだ高機能なSystemRescueCd、Trinity Rescue Kit、ウイルス検知にAVG Rescue CD、F-Secure Rescue CD、Comodo Rescue Diskを追加してみた次第。

 WinBuilderで作ったWindows PEのGUI版は、以前、激遅ながらも昔買った256MBでかつUSB 1.1のUSBメモリにWin7PEを入れたのでISOディスクイメージも残ってはいるものの、今回は試すこともなく、追加しませんでしたが、ISOブートできるなら入れてもいいかな。

 こんな風に熟成した?結果が、このLive USB。

ウェブ造ホーム前へ次へ