高尾宏治日記 on はてなブログ

プログラミング言語Rubyを中心とした技術情報を扱うブログです(Microsoft Surfaceはやめました)。

Surface Pro/Windows 8.1から、Surface Pro 2/Windows 8.1へのデータの移行。 #SurfaceJP

ついにSurface Pro 2を手に入れたのですが、Surface Pro/Windows 8.1からデータを移行する手段がないことを知りました orz

転送ツールがインポートのみの動作になっている

Windows 8Windows 8.1はデータを転送できるのですが、Windows 8.1→Windows 8.1はできないとのこと。う~ん、いまだにファイルの転送をユーザに強いるなんてありえないと思いつつも、愚痴を言っててもしょうがありません、やるしかないです。

クラウド(SkyDrive)経由は、遅すぎるのと、ファイルのバイト列以外の情報(権限とか)が消えてしまうので別の方法にします。

そこで、いったんMicro SDにファイルをコピーすることにしました。

また、Cygwinの操作配下のものはCygwinのtarで圧縮することにしました。これなら権限が適切に保持されるはず、と思ったら tar コマンドで展開すると mklink コマンドで作成したリンクの権限が Administrator からユーザに変わってしまうことがわかりました。なかなか難しい。それに、どうやって移行先の Surface Pro 2 で tar で圧縮したファイルを展開すればいいのでしょう(笑)Cygwinがインストールされていませんからね。困ったな~。

とりあえず、以前 Surface Pro を交換修理したときの手順書を元に手作業で移行することにしました。

以下はその作業記録です。

Emacs: gnupack 24.3-20130503

Emacsさえ動作すれば、あとはどうとでもなる。

  • gnupackからemacs-24.3-20130503.exeをダウンロード・インストール。
    • 展開先は「C:\」
  • SkyDrive上のバックアップからdot.emacs.dなどを配置。
    • 以下、管理者権限のコマンドプロンプトで実行。またSkyDrive直下のdotfilesにバックアップを格納していることが前提。
C:\Users\kouji>mklink /d .emacs.d .\SkyDrive\dotfiles\dot.emacs.d
.emacs.d <<===>> .\SkyDrive\dotfiles\dot.emacs.d のシンボリック リンクが作成されました

C:\Users\kouji>mklink .gitignore .\SkyDrive\dotfiles\dot.gitignore
.gitignore <<===>> .\SkyDrive\dotfiles\dot.gitignore のシンボリック リンクが作成されました

C:\Users\kouji>mklink .gitconfig .\SkyDrive\dotfiles\dot.gitconfig
.gitconfig <<===>> .\SkyDrive\dotfiles\dot.gitconfig のシンボリック リンクが作成されました

C:\Users\kouji>mklink .bashrc .\SkyDrive\dotfiles\dot.bashrc
.bashrc <<===>> .\SkyDrive\dotfiles\dot.bashrc のシンボリック リンクが作成されました

C:\Users\kouji>mklink .profile .\SkyDrive\dotfiles\dot.profile
.profile <<===>> .\SkyDrive\dotfiles\dot.profile のシンボリック リンクが作成されました

C:\Users\kouji>mklink .gemrc .\SkyDrive\dotfiles\dot.gemrc
.gemrc <<===>> .\SkyDrive\dotfiles\dot.gemrc のシンボリック リンクが作成されました

C:\Users\kouji>mklink .inputrc .\SkyDrive\dotfiles\dot.inputrc
.inputrc <<===>> .\SkyDrive\dotfiles\dot.inputrc のシンボリック リンクが作成されました

C:\Users\kouji>mklink .minttyrc .\SkyDrive\dotfiles\dot.minttyrc
.minttyrc <<===>> .\SkyDrive\dotfiles\dot.minttyrc のシンボリック リンクが作成されました

C:\Users\kouji>mklink .ruby-version .\SkyDrive\dotfiles\dot.ruby-version
.ruby-version <<===>> .\SkyDrive\dotfiles\dot.ruby-version のシンボリック リンクが作成されました

C:\Users\kouji>mklink .screenrc .\SkyDrive\dotfiles\dot.screenrc
.screenrc <<===>> .\SkyDrive\dotfiles\dot.screenrc のシンボリック リンクが作成されました

C:\Users\kouji>mklink .zshrc .\SkyDrive\dotfiles\dot.zshrc
.zshrc <<===>> .\SkyDrive\dotfiles\dot.zshrc のシンボリック リンクが作成されました
  • 環境変数の追加
    • HOME: C:\Users\kouji
    • Path: C:\tools;C:\emacs-24.3-20130503\bin

いろいろなソフトウェア

  • Windowsストアアプリのインストール
    • 基本的にインストール済みのもの(FacebookTwitter)をすべて再インストールすればいい。
  • iTunes
    • 同時にQuickTimeをインストール
    • 2013/12/29現在、iCloudコントロールをインストールすると休止状態から復帰しなくなることが分かったのでここではインストールしない
  • OutlookにGmailのアカウントを設定
    • Outlookのオプションは引き継がないようだ。Surface ProのOutlookのオプションを見ながら手作業で移行
  • 7-Zip
    • 7z920-x64.msi をインストール
  • プリンタ Cannon MP640 のインストール
    • mp68-win-mp640-1_05-ej.exe
  • Skitchのインストール
    • skitchsetup-2.3.0.10.exe
  • Oracle VirtualBoxのインストール
  • Firefoxのインストール
  • Google Chromeのインストール

Cygwin関連

  • Surface ProのCygwinのキャッシュディレクトリC:\Users\kouji\cacheを移行
    • Cygwinのパッケージのダウンロード時間を大幅に短縮できる
  • Cygwin
    • 64ビット版をインストール。32ビット版は正しく動作しないことがわかっている。
    • gcc-core
    • git
    • git-svn
    • make
    • patch
    • libncursesw-devel
    • openssl-devel
    • readline
    • libsqlite3-devel
    • libxml2-devel
    • libxslt-devel
    • wget
    • ruby
    • zip
    • unzip
    • screen
    • zsh
    • openssh
    • ncurses
    • Publishing以下のすべて (←これはとっても時間がかかるから、時間があるときにあとからインストールすることをオススメします)
  • setup-x86_64.exe を C:\cygwin64\bin に移動
    • ついでにスタートにピン止めしておく
  • /etc/passwordのkoujiを以下のように修正(秘密っぽいところは伏せています)。修正後にCygwinのシェルを再起動。
(修正前)
kouji:unused:1001:513:kouji takao,U-kouji-surface2\kouji,****:/home/kouji:/bin/bash
(修正後)
kouji:unused:1001:545:kouji takao,U-kouji-surface2\kouji,****:/cygdrive/c/Users/kouji:/bin/bash

データの移行

  • ~/work以下
    • 私は C:\Users\kouji/work 以下に作業環境一式を配置していますので、移行元の Surface Pro にて work 以下を tar cpzf work.tar.gz work で圧縮して、移行先の Surface Pro 2 にて tar xpzf work.tar.gz で展開しました。
  • 単純にコピーしたもの
    • \tools
    • \Users\kouji.VirtualBox
    • \Users\kouji.bash_history
    • \Users\kouji.bundle
    • \Users\kouji.gem
    • \Users\kouji.heroku
    • \Users\kouji.lesshst
    • \Users\kouji.relish
    • \Users\kouji.s7
    • \Users\kouji.smalruby-editor
    • \Users\kouji.ssh
    • \Users\kouji.subversion
    • \Users\kouji.travis
    • \Users\kouji.uru
    • \Users\kouji\local
    • \Users\kouji\VirtualBox VMs
    • \Users\kouji\Music\iTunes
  • \Users\kouji.sshCygwinシェルで権限を変更
chgrp -R Users .ssh
cd .ssh
chmod 600 authorized_keys config id_rsa id_rsa.new known_hosts

Ruby関連

基本的に work 配下に Ruby 処理系があるため移行は完了しているので、こまごまとした設定を行う。

cd \
mklink /d Ruby \Users\kouji\work\uru\versions\ruby-2.0.0-p353-i386-mingw32\bin
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
  • PowerShellの設定

    • レイアウト - 画面バッファーのサイズ - 幅: 80
    • レイアウト - ウィンドウのサイズ - 幅: 80
    • レイアウト - ウィンドウの位置 - システム設定を使う: チェック
    • 画面の色 - 画面の背景: 黒
  • Gitのインストール

    • Git-1.8.4-preview20130916.exe
    • Adjusting your PATH environment: Run Git and included UNIX tools from the Windows Command Prompt
    • 次の選択肢は真ん中の「Checkout as is, Commit Unix」みたいなの。
  • Heroku Toolbeltのインストール

    • heroku-toolbelt.exe
  • MySQLのインストール

    • mysql-installer-community-5.6.14.0.exe
  • node.jsのインストール

  • インストール後はPower Shellを再起動させること

とりあえずはこんなところです。

Surfaceグループの紹介

Surface全般を扱うはてなグループ Surface に参加してみませんか? みなさんの参加をお待ちしております!!