sysprep がらみの用語を自分なりに整理

ここでは sysprep を単純にシステムのコピーに利用するという話だけに限定する。sysprep では mini-setup 時に自動的に追加コマンドを実行するなどの機能があるが、それは利用したことがないので関係する用語には触れていない。

sysprep
Windows の deploy ツール。実際に行えるのは以下の操作。イメージファイルの作成やコピーなどは sysprep の守備範囲外なので、実際には sysprep だけでは大量のセットアップを行うことはできない。あくまで sysprep がやるのは Windows をコピー可能な状態にすることと、コピー後のセットアップを自動化すること。
  • SID の削除
  • SID の再生成
  • mini-setup などの最小限のセットアップの予約とその実行。その後、Sysprep の削除。
sysprep を使ってシステムのコピーが行える条件
  • ハードウェアが同一 HAL を保持していること
  • ACPI サポートの条件が同一であること
    • マスターとコピーの両方がサポートしていない、あるいは両方がサポートしている状態でないとダメ。
SID
コンピュータ名、ユーザー名、グループ名などを内部で管理するための ID. これらは完全にユニークでなければいけないため、SID を保持したまま Windows システムをコピーすることはできない。(正直、コピーしたことないからどうなるのかは知らない。)
イメージ
「イメージファイル」のことをつい連想してしまうが、単にその時点でのディスクの snapshot という程度の意味。あるいは snapshot としてコピーできるように sysprep を用いて SID を削除した状態。
Windowsへようこそ
reseal 後の起動で現れる画面の一つ。通常、買ってきた Windows で最初に現れる画面と基本的に同じ。アプリケーションのインストールウィザード画面より若干フレンドリーな雰囲気になっている。sysprep を用いた deployment では「mini-setup を使用しない」をチェックするとこの画面が現れる。これを利用した場合、Administrator のパスワードを保存しておくことができなかったり、追加でコマンドを自動実行させることができないなど、独自にカスタマイズした Windows の deployment には若干力不足な感じではある。また、この画面では Administrator 以外の管理者アカウントが存在しない場合、ユーザーの作成を要求される。Windows のログオン画面であるところの「ようこそ画面」とはまったく違うことに注意。
mini-setup
reseal 後の起動で現れる画面の一つ。「Windows へようこそ」ではなく通常のウィザードダイアログのような形で行われる deployment 時に必要な最小限のセットアップ。Administrator のパスワード保存や自動的に追加のコマンドを実行するなどの比較的高度なセットアップが可能。Administrator 以外の管理者アカウントがなくてもユーザーの作成は要求されない。
factoryモード
簡単に言うと SID の削除だけを行うモード1。コンピュータ名の付け替えや所有者の設定、追加コマンドの実行などを一切しないが、他のコンピュータと SID がかぶらない状態を作り出すことができる。SID を再生成する以外は通常使う Windows の状態との違いは感覚的には分からない。ログオンなどの操作もフツー。何度この状態で起動しても Sysprep のバイナリは削除されない。作業マスタとしてこの状態のディスクを保存しておくとよい。
reseal(再シール)
SID を削除し、「Windows へようこそ」か mini-setup の実行を予約することで、箱から取り出したばかりの状態の Windows を作り出すこと。2こうしてセットアップを行った後、Sysprep は自働的に再起動を行い、バイナリも設定ファイルも含めて削除される。3また、Microsoft のドキュメントによると reseal は同一イメージ上で 3回までという制限がある。このため、作業マスタには factory モードで sysprep を実行したイメージを利用すればよい、という話に繋がる。4

参考

  1. 削除しないことも可能 

  2. つまり、一度箱から取り出したものにもう一度「封をする=sealする」という意味。 

  3. まっさらな状態としてユーザーに手渡すことを前提としているため。 

  4. が、手元の環境では4回目の reseal も普通に行え、その状態のイメージで通常通り起動できた。コピーしたらダメだったのかもしれないけど、そこまでは確認していない。 

More

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Develop Document Jekyll