船着場の備忘録

Windows や Linuxの備忘録用

2way boot (?) uefi と legacy

usbから起動できる linuxubuntu) を持っておけば便利だが、ここのところuefiで起動するものが増え従来のbios(mbr)から起動するものが混在していて、biosから起動するだけのものではいちいちPCの設定を変えないと行けないのはめんどくさい。

そこで両方で起動できるのがいいと思いisoイメージをUSBに焼いたが、これではプログラムとか変更はできるが保存ができない(パーティションを分ければできなくもないが...)ので、なにかいい方法はないかと探したらあった。

窓の外には: How To UEFI and BIOS Bootloader on USB Flash Drive 

と、ここのページで紹介されていたので早速作った。

biosから起動するのはどのPCでもいいが、uefiではPCによってHDDやUSBの認識順番が違うらしく、起動できるのとできないのがあった。イメージを焼いたUSBならできるのだから、これでもできるはずと思い、grub.cfgを変更してuuid(vfatのは16進数で8桁)からパーティションを探すようにしたらうまくいかない。grub rescue ばかりなってしまう。uefi仕様書を読めばなにかヒントが得られるかもしれないがめんどくさいのでやめる。

 

今度は逆に先にuefiで起動しインストールする。パーティションefi を100MBほどで作りスワップとメインのパーティションを作りインストールする。インストールできたらもう一度インストールメディアをbiosから起動し、grubをインストールする。先ほどインストールしたUSBを適当な場所にマウントしターミナルから

$ sudo grub-install --root-directory=/mount-point/ /dev/sdx

とすればgrubがインストールされ他のPCからでも起動できるようになる。

あとはリポジトリを追加するなりソースを落としてコンパイルするなりして、grub customizerをインストールして余計なエントリーを消すだけ。

 

bootx64.efiをshimx64.efiで置き換えるとセキュアブートにも対応できるかも。

 

 

参考

Ubuntu の LiveCD を使用して grub を再インストールする [nanashinonozomi.com]

窓の外には: How To UEFI and BIOS Bootloader on USB Flash Drive 

dynabook で efi ブートができた。。。。

opensuse 13.2 のbeta 版が出ててので試してみようとしてインストールしてみた。

 

dynabook r732 のhdd 1TBをSSDに換装して、なおかつそのhdd をBRDを外してそこにはめて使っている。そのSSDMBRで、HDDはGPTで使っていて、SSDは256なのでパーティションは4つで十分だが、 hddはwindows8が入っていたものなのでGPTから変更できない。以前opensuseEFIでインストールした際に起動できなかったので仕方 なくEFIを使わずにインストールして使っているが、beta版を入れるためにhddに50gbほどスペースを空けたがパーティションが前から7番 目...   mbrからじゃ起動できないネw 実際は他のLinuxのgrub2を使えば起動できるんだけど(笑)

 

efiでインストールするとやっぱり起動できない。でもUSBのEFIからは起動できるからHDDからでもいけるんじゃないかと思い、いろいろ試してみたらできたのだ(  ゜o  ゜)

 

EFIパーティションに作られたopensuseファイルの中のものをBOOTフォルダに移してgrubx64.efi を bootx64.efiしてリブート。これで起動出来た。

 

他のdynabookでうまくいくかどうかは不明。

デュアルブートをしようとしてたのにできていない。

windows8grubメニューに出てこない、なんでだろう。

suse 13.1は起動できるのに。

 

 

HDDはやっぱりおそいな。

 

 

2014/11/10 追記

 

linux の grub2によるデュアルブートができた\(^o^)/

winのefiをそのままにして linuxefiをインストールしてそのままだとWinが起動されるから、USBブートなりで起動して efi パーティションEFI/Microsoft/Boot/bootmgfw.efiを適当な名前に変えて再起動すると grub2 が起動するがwinを起動させようとすると、当然上の .efi ファイルが見つからないと言われる。linux を起動して /boot/grub2/grub.cnf の中からwin のチェインブートする .efi ファイルの記述があるが名前を変更してあるので、こちらも変更した通りに変更する。すると grub2 からも起動できるようになる。

opensuse で試したものなので他のディストリでは、 /boot/grub2/grub.cnf  の場所が異なるかもしれない。

今回は dynabook ではなく hpに win 8.1 が入ってる状態に最近リリースされた opensuse 13.2 をインストールしたが、dynabook でもできると思う。

dynabook のほうは evergreen project なのでアップデートする予定はない。

 

CentOS で kvm

CentOS 6.5 でKVMを構築しようとしブリッジで接続しようとして仮想マシンをインストール仕様として設定を完了させて、いざっ。

 

kvm の初期化に失敗。

エラーをググっても解決しないと思ったらVirtualBox を起動しているのが原因だったというねww。

CPUの問題なのか?

もっとコア数の多いCPUではどうなるのだろか、試してみたい。

centos で録画鯖構築

いろんなブログなどを参考にcentos 6.5 + px-w3pe +epgrec で録画鯖を構築。

テストの段階でひかかってしまったので。

 

OUTPUT=test.ts CHANNEL=20 DURATION=30 TUNER=0 MODE=0 TYPE=GR /var/www/html/epgrec/do-record.sh
カレントディレクトリにtest.tsというファイルができ再生できれば成功。

 

上記のコマンドでテストをしたがどちらも失敗。

Cannot tune to the specified channel

とのエラーが出る。

はじめこれをroot権限で実行するとちゃんと録画出来ていたので気づかなくて、なぜ録画失敗するのかわからなかった。

ぐぐったところ、2chで以前に同じような人がいてチューナーのデバイスパーミッションが原因のようでapacheユーザにも利用できるように/devにあるファイルを変更したところテストも成功し問題なく録画出来た。

先人様ありがとうございます。

 

cpu driverの変更

modprobeで変更できなかったドライバをブート時に読み込まずにパスし別のドライバを読み込む

i7でopensuse13.1-3.11.10-7-desktopを使っているとドライバがintel_pstateの時cpuクロックが1.6GHzを超えない

/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"
を加える

けれによりブート時に読み込むのを否できる。

あとは# update-grub

ではできないよう

# grub2-mkconfig -o /boot/grub2/grub.cfg
これでできる。

 

http://www.usupi.org/sysad/237.html

openSUSE 13.1 64bitのskypeのインストール

公式サイトからスカイプをダウンロード、インストール

 

追加のlibrary等をインストール

# zypper install -y pavucontrol alsa-plugins-pulse-32bit libv4l-32bit

 

ショートカットを作成し、プロパティからコマンドを以下のように変更

PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype %U

 

これで音が出るようになる。

 

 

参考サイト : http://en.opensuse.org/SDB:Skype

 

 

Windows 8 (プリインストール)とLinuxのデュアルブート

Widnows 8 がプリインストールされた Pavilion Ultrabook 14-b111TUを購入したのが、去年のゴールデンウィークあたりだったと思う。

メモリが8GB載ってるし送料込みで5万5千円ぐらいでディスプレイが13-14インチだったということでlinuxの勉強用にと購入した。

そのぐらいの時期にはwindows 8linuxデュアルブートに関する情報が少なく、メインPCを一度リカバリしなければならない状態にしてしまったので、もう一台勉強用がほしいと思っていた。(この頃はメインPC一台しか持っていなかった)

 

届いたので早速デュアルブートしようとか思いやってみたのだがうまくいまず...

つい最近まで色々試してみていたり。

 

UEFI + BIOSでのデュアルブート

BIOSの設定でRegacy modeをオンにしセキュアブートも無効にし、GPartedで C ドライブを100GBに縮小してその後ろにUbuntu/openSUSEをインストールしたが、Windowsパーティションが前に4つあったので起動できず...

Ubuntuパーティション設定の時に何か1MBほどのパーティションを作りそこにgrubを追加したら起動はできたものの、パーティションを変更すると起動できなくなりgrubの再インストールをしなくてはならないがうまくいかず...

何故だったんだろうか?

クリーンインストールをすればいいだけなのだが、マルチブートにするつもりなので別のOSをかえるたびに再インストールするのは面倒だから却下w

 

UEFI だけでデュアルブート

WindowsのとLinuxEFIパーティションを共通のものにしインストールすると、見事起動できた・・・のだが、プリインストールマシンの仕様なのかlinuxをデフォルトのOSに設定することができず、起動するたびにboot managerを開くのは面倒なのでefibootmanager というコマンドを叩くも次回に起動するOSを選択すること以外は反映されず...

毎回コマンドを叩けばいいと言われそうだがWidnows を起動したときはこれができないので、以下略

 

・結局UEFI + BIOS

いろいろ試しているうちにUEFIの起動に対応していないLinuxを使いたいとなったのでやはりこの方法をとることになるが、どうすれば起動できるかわからないパーティションの数が減れば起動できると思い、リカバリ後のこのPCのUEFIとC ドライブ以外のパーティションを消してGPartedで前に寄せるとWindows が起動できなくなってしまった orz

そこでddコマンドでパーティションイメージを作り、後方に書き込む(パーティションの移動ができなかったため)とマルチブートができた\(^o^)/

以下その方法

 

1. /dev/sda1-4のパーティションをddコマンドでイメージ化

その際無駄な領域を読み取るのは時間の無駄なので先にCドライブの大きさを極限まで小さくしておく。

2. 次にディスク全体をGPTを書き込みしBIOSで起動するLinux用のパーティションを作成(/用)

3. それが終わったらそのパーティションの後ろに1で作成したイメージを書き込む

4. UEFIで起動するLinuxパーティションを作成

Linux共通のSWAP用パーティションも作成

5. それぞれのLinuxをインストール

 

今のパーティション構成は

/dev/sda1 : Backtrack

/dev/sda2 : Kali Linux

/dev/sda3 : Slackware

/dev/sda4 : Ubuntu

/dev/sda5 : 回復用パーティション(win)

/dev/sda6 : EFI

/dev/sda7 : win reserve  このパーティションは不明

/dev/sda8 : windows

/dev/sda9 : openSUSE

/dev/sda10 : データ共有

/dev/sda11 : swap

となった。

OSがこんなにあってどうするんだという気分になってしまうが。

でも結局起動時にbootmanager を開かないといけないがそこは妥協した。

 

p.s.

backtrackの無線LANが使えない(最新のcompat-driver)