自己紹介

ITエンジニア(元舞鶴高専生)。→ About Me

Linuxを使ってWindowsを小さいディスクに引っ越す

久々の更新になってしまいましたが、備忘録も兼ねて自分のWin環境でやったことをまとめようとおもって書き始めました。 別にディスクの引っ越しとかに限らず、EFIとか回復環境の再構築もある程度書いてるつもりなので、そういう人も見ていただければと思います(手順7あたり)。 ただ、Linuxを使った経験がある人向けになってます(Windowsなのに)。 あと、この記事ではddでパーティションのコピーとかやるので、間違えるとデータが消し飛びます。私が書いているコマンドが間違っているかもしれないので、typeする前に一度考えてください。データが飛んでも私は責任を負いません。怖かったらバックアップをとっておくか、大人しく再インストールしてください。 はじめに 長いことWindowsを使ってると、ディスクの交換とかすることもあると思います。大きいサイズのディスクへの引っ越しならそのへんのパーティションコピーツール(AOMEIとかEaseUSとか)を使えばいいですが、小さい環境に移すのは結構面倒だったりします。 こういう場合、基本的にはWindowsを入れ直してやるのが楽なのかもしれませんが、どうしてもCドライブを移したいとかいう場合もあると思います。あと、パーティション構成が気に食わないって人もいると思います(自分)。そういう場合、Linuxでパーティション作成→ddという方法が意外とうまく行けたので、適当ですが記事にした次第です。結構危ないので、あくまで参考程度にしていただければ… どうでもいいですが、パーティションコピーツールは前に使ったときにパーティション名が文字化けしたりしたので個人的にはあまりおすすめしません。 必要な環境 Windows(引っ越し元) Linux(USBブートのインストーラーでOK) Windowsインストーラー 引越し先のドライブ WindowsのISOはMediaCreationToolで手に入れてください。 インストーラーが2つ要るので、Ventoyとかを使うのをオススメします(めっちゃ便利なので)。使い方は省きます。 ちなみにですがI use Arch btwなので、私はArchLinuxのISOを使いました。ddとcfdiskが使えればインストーラーじゃなくても何でもいいです。 作業 始める前に注意ですが、以降の作業はUEFI&GPT環境を想定しています。MBR環境でも動くかもしれませんが、検証していないので動作は保証できません。(めんどくさかったので) 目次 パーティション縮小 Linuxブート ディスクの確認 パーティションの用意 コピー Windowsインストーラの起動 DiskPart BCDBoot 回復環境の設定 手順1 パーティション縮小 コピーする前にコピー量を削減するためにWin上でCドライブを縮小しておきます。Winメニュー右クリック→ディスクの管理 でCドライブのサイズを可能な限り小さくします。 なお、ページファイルとかシャドウコピーとかがあるとあまり縮小できなかったりするので、可能であればそれらを無効化してからやるといいと思います(特に小さい環境にコピーする場合)。 手順2 Linuxブート 用意したLinux環境をブートします。Shiftキー押しながら再起動→メディアを使用ってやるのが楽だと思います。 手順3 ディスクの確認 まずコピー元とコピー先のディスクの情報を確認します。fdisk -l /dev/sd~みたいな感じでどのデバイスがコピー元orコピー先なのかを確認しましょう。 ここからはコピー元をsdX、コピー先をsdYとして進めていきます。XとYは自身の環境に合わせて読み替えてください。 コピー元は例えばこんな感じです。 # fdisk -l /dev/sdX Disk /dev/sdX: 465.78 GiB, 500107862016 bytes, 976773168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: B8243056-BE4E-4935-9FA3-886D58AB4708 Device Start End Sectors Size Type /dev/sdX1 2048 526335 524288 256M EFI System /dev/sdX2 526336 2623487 2097152 1G Windows recovery environment /dev/sdX3 2623488 976773119 974149632 464.5G Microsoft basic data この場合、/dev/sdX3がCドライブですね。sdX2は回復環境、sdX1はEFIです。実際はこんな感じではないと思いますが、とりあえずCドライブが分かれば何でもいいです。 ...

2022/11/11 · 3 min · 503 words · u-haru

QuaStationでArchlinuxを動作させる

こんにちは。u-haruです。 前の記事で「最近友人がQuaStationを買って…」とか言ってたのに、その友人がQuaStationのu-bootを吹っ飛ばして文鎮化させてました。 同じような被害を防ぐためにも、早く記事の続きを書かなければ… というわけで、引き続き作業を進めていきましょう。今回はQuaStationでArchlinuxを動作させます。 シリアル線の準備 QuaStationのコンソールにアクセスするためには、シリアルケーブルを引き出す必要があります。 QuaStationの底面の四隅にある足を剥がして、ネジを外します。このときにT-10のトルクスドライバーが必要になるので注意して下さい。 次に、シリアル端子を探して線をつなぎます。下の画像を参考にして下さい。 ※注意 もしかしたらTxとRxが逆かもしれません。その時はすみません。 線をつけたら、それをUSB-Serial変換基板等を用いてPCと接続します。 そしたら、TeraTermを起動してシリアルコンソールに接続します。ボーレートは115200です。 つなぎ終わったら電源を入れます。色々画面に出力されますが、途中でEscを連打することでu-bootの画面に入れます。 入れたら準備は終了です。 USBからブート QuaStationに、前回までで用意したUSBを刺します。そしたら、u-boot画面で以下のコマンドを順に入力して下さい。 PARTUUID="~“のところは以前メモったパーティションUUIDに変えてください。(例:root=PARTUUID="0444ac2b-01") めんどくさければroot=/dev/sda2とかでもいいです。 > usb start > fatload usb 0 0x01f00000 /bpi-w2.dtb > fatload usb 0 0x03000000 /uimage > env set bootargs earlycon=uart8250,mmio32,0x98007800 console=ttyS0,115200n8 initrd=0x02200000,0x7F0000 root=PARTUUID="~" rw rootwait rootfstype=ext4 init=/sbin/init selinux=0 nmi_watchdog=0 devtmpfs.mount=1 env set bootcmd 'booti 0x03000000 - 0x01f00000' > b2ndbc これでうまく行けばArchlinuxが起動するはずです。 USBから自動起動するには、以下のコマンドをu-boot内で実行して下さい。 上のコマンドをすべて一行に圧縮してbootcmdに設定して、セーブしてるだけです。PARTUUIDは場合に応じて変えて下さい。 > env set bootcmd "usb start;fatload usb 0 0x01f00000 /bpi-w2.dtb;fatload usb 0 0x03000000 /uimage;env set bootargs earlycon=uart8250,mmio32,0x98007800 console=ttyS0,115200n8 initrd=0x02200000,0x7F0000 root=PARTUUID="~" rw rootwait rootfstype=ext4 init=/sbin/init selinux=0 nmi_watchdog=1 devtmpfs.mount=1;env set bootcmd 'booti 0x03000000 - 0x01f00000';b2ndbc" > saveenv これで、次回以降勝手に起動するはずです。 ...

2021/8/8 · 3 min · 463 words · u-haru

QuaStation用のArchlinuxイメージを作成する

こんにちは。u-haruです。最近友人がQuaStationを買っていじり始めました。私も別の友人に勧められていじり始めたので、このままミームみたいに広がっていって欲しいなぁ… ってことで、そのためにも引き続きQuaStationをいじっていきます。 今回は、QuaStationで動かす用のlinuxを用意します。タイトルの通り、ArchLinuxを使います。と言ってもarm用の非公式版ですが… 今回USBメモリが必要になります(2GBくらいで十分)。 USBのパーティション分け&フォーマット まずはUSBを2つのパーティションに分けます。cfdiskとかで100MBとそれ以外に分ければ大丈夫です。最初の100MBには前回作ったkernelとかを入れます。後の領域にはOSが入ります。 フォーマットは # mkfs.vfat /dev/sdx1 # mkfs.ext4 /dev/sdx2 みたいな感じでvfatとext4にします。これでUSB側の用意は終わったので、パーティション1の方にkernelとdtbを入れておきましょう。 あと、後々必要になるのでsdx2の方のパーティションUUIDをメモっておいて下さい # blkid カーネル&dtbのコピー # mount /dev/sdx1 /mnt # cp bpi-w2.dtb /mnt # cp uImage /mnt # umount /mnt 以上でコピー完了です ArchLinuxのインストール 次にOSのイメージを作成します。archlinuxarm.orgにはそのままブート可能なメディアがあるのですが、これだとNetworkManagerとか使えなくて不便なので自作します。USB-Ethernetのアダプタとか持ってるなら公式のイメージ使っても大丈夫です。 やることは/以下のファイルをUSBのパーティション2に作成するだけです。公式のイメージを使うなら手順のmountpointを変えるだけで、この後の手順は飛ばしても大丈夫です。 それでは、イメージをダウンロードします。リンクは http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2021.01.01/archlinux-bootstrap-2021.01.01-x86_64.tar.gz です。どんどんバージョンアップとかでリンク変わるので、http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/以下は状況に応じて変えてください。 ダウンロードしたら、それをどこか適当な場所に展開します。root.x86_64みたいなフォルダができてれば大丈夫です。 次に、pacmanの設定を行います。 まずは、root.x86_64/etc/pacman.conf内にあるArchitecture = autoをArchitecture = aarch64にします。そして、CheckSpaceの行をコメントアウトします。じゃないとエラー出ます。最後に、coreリポジトリの署名をすべて信用するように、SigLevel = TrustAllを足します。 /root.x86_64/etc/pacman.conf #CleanMethod = KeepInstalled Architecture = aarch64 ##変更する 略 #TotalDownload #CheckSpace ##コメントアウトする #VerbosePkgLists 略 [core] Include = /etc/pacman.d/mirrorlist SigLevel = TrustAll ##追加する そして、/root.x86_64/etc/pacman.d/mirrorlistの一番上にServer = http://tw.mirror.archlinuxarm.org/$arch/$repo/を書き加えます。Server = http://sg.mirror.archlinuxarm.org/$arch/$repo/もその下に入れておくと安心です。 ...

2021/12/12 · 1 min · 125 words · u-haru

QuaStation用のカーネルをビルドする

こんにちは。u-haruです。まさかこんなに更新しないとは思いませんでした。せっかくブログ作ったのに勿体ねぇ… ってことで、とりあえず最近までずーーーっといじってたQuaStationの事でも適当に書いていきます。 とりあえず複数の記事に分けるとして、今回はカーネルの準備に取り掛かります。 ちなみに今回書いてる内容はてんぷさんの書いたやつと大体同じです。 こっちのほうがu-boot画面についてとか色々書いてるのでこれ参考にしたほうがわかりやすいかも… ソースコードのダウンロード まずは、ソースコードをダウンロードします。と言ってもQuaStation用のものではありません。一応auのカーネルもあるのですがこっちのほうがバージョン新しいのでこっちを使います。 https://github.com/BPI-SINOVOIP/BPI-W2-bsp/releases/tag/w2-4.9-v1.0 これのソースコードをダウンロードして適当な場所に展開してください。展開したら2.3GBまでに膨れ上がります。 先に言っておくと、ビルドしてたら私の環境では10GBくらいまで行ったので容量の少ない人は注意してください(多分試しすぎなだけ)。 あと、sudoが使える環境が必要です。 ビルド準備 展開が終わったら、次はビルドの準備をします。 まずディレクトリに入って、./configure を実行します。 次に./build.shの120行目あたりを修正します。このままだと必要のないu-bootまでビルドしてエラー吐いたりシングルスレッドでクソ遅かったりするので… 修正前: echo case $mode in 1) RET=1;make && make pack && cp_download_files && RET=0 ;; 2) make u-boot;; 修正後: echo case $mode in 1) RET=1;make kernel -j4 && make pack -j4 && cp_download_files && RET=0 ;; 2) make u-boot -j4 のところは自身の環境に合わせてください。基本的にはCPUのスレッド数入れればOKです(20スレッドなら-j20 )。 次に、ソースコードの方を修正します。と言っても必要なのは1箇所だけです。以前別の場所修正した気がしたのですが、今試してみたら1箇所だけで動いたのでこれでヨシ! 修正するのは linux-rt/scripts/dtc/dtc-parser.tab.c の1199行目です。 修正前: /* Location data for the lookahead symbol. */ YYLTYPE yylloc # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 修正後: ...

2020/19/19 · 1 min · 122 words · u-haru

マークダウンのテスト

個人的にマークダウンの書き方を試して見たかったので画像とか表示させてみました。 画像表示 ![](TestImage.jpg "テスト") Youtubeの再生枠 そのままHTML埋め込むみたい <iframe width="720" height="400" src="https://www.youtube.com/embed/F6va6tg62qg" frameborder="0" allowfullscreen></iframe>

2020/18/18 · 1 min · 12 words · u-haru

最初の投稿

はじめまして。 なんとなく、Hugoでブログを作成してみました。 実は以前にも、Qua-Stationを改造してWordPressでブログ動かしたりしてました。 今回、AliExpressで入手した激安Xeonでサーバーを組んだので、心機一転、Staticなホームページを作ってみようと思った次第です。 Markdownの書き方とかよくわかってないんで色々拙いですが、よろしくおねがいします。

2020/18/18 · 1 min · 5 words · u-haru