laughk / archlinux-note

普段使っている ArchLinux に関するメモ置き場です
5 stars 0 forks source link

Archlinux の Base インストール完了までを記録するスレ #5

Closed laughk closed 8 years ago

laughk commented 8 years ago

あたりを記録していく

参考箇所

laughk commented 8 years ago

画面の文字が小さすぎてキツイのでSSH経由で作業

XPS15 9550 は 4KディスプレイなのでGUIなしのコンソール作業は流石にキツイ。 ということで有線LANを繋いでSSH経由で作業する。

in XPS15 ArchLinux(DISK)

## SSH サーバの起動
systemctrl start sshd

## ログイン用に root パスワードを変更
passwd

## 付与されているIPを確認
## (2016/04/24現在の最新のisoイメージの場合はDHCPが有効なLANに接続した場合は自動で割り振られていた)
ip -4 a

in local pc

ディスクブートをしている xps15 にSSHログイン

ssh -lroot xxx.xxx.xxx.xxx # 確認したip
laughk commented 8 years ago

Diskブートする際の注意

順番が前後してしまうけどメモを残しておく。 (終わった作業なので若干うろ覚え...)

laughk commented 8 years ago

デバイスが見えない

フォーマットしようとしたらなんかXPS15のデバイスが見えない???

root@archiso ~ # lsblk 
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0    11:0    1   724M  0 rom  /run/archiso/bootmnt
loop0   7:0    0 313.1M  1 loop /run/archiso/sfs/airootfs
root@archiso ~ # ls /dev  
acpi_thermal_rel  full       loop6               ptmx      tty10  tty26  tty41  tty57   urandom  vfio
autofs            fuse       loop7               pts       tty11  tty27  tty42  tty58   usb      vga_arbiter
block             hidraw0    loop-control        random    tty12  tty28  tty43  tty59   v4l      vhci
bsg               hidraw1    mapper              rfkill    tty13  tty29  tty44  tty6    vcs      vhost-net
btrfs-control     hpet       mcelog              rtc       tty14  tty3   tty45  tty60   vcs1     video0
bus               hugepages  media0              rtc0      tty15  tty30  tty46  tty61   vcs2     watchdog
cdrom             initctl    mei0                shm       tty16  tty31  tty47  tty62   vcs3     watchdog0
char              input      mem                 snapshot  tty17  tty32  tty48  tty63   vcs4     zero
console           kmsg       memory_bandwidth    snd       tty18  tty33  tty49  tty7    vcs5
core              kvm        mqueue              sr0       tty19  tty34  tty5   tty8    vcs6
cpu               log        net                 stderr    tty2   tty35  tty50  tty9    vcsa
cpu_dma_latency   loop0      network_latency     stdin     tty20  tty36  tty51  ttyS0   vcsa1
cuse              loop1      network_throughput  stdout    tty21  tty37  tty52  ttyS1   vcsa2
disk              loop2      null                tpm0      tty22  tty38  tty53  ttyS2   vcsa3
dri               loop3      port                tty       tty23  tty39  tty54  ttyS3   vcsa4
fb0               loop4      ppp                 tty0      tty24  tty4   tty55  uhid    vcsa5
fd                loop5      psaux               tty1      tty25  tty40  tty56  uinput  vcsa6
root@archiso ~ # ls /dev/disk 
by-id  by-label  by-path  by-uuid
root@archiso ~ # ls /dev/disk/by-uuid 
2016-04-01-20-38-38-00
root@archiso ~ # ls /dev/disk/by-uuid/2016-04-01-20-38-38-00 
/dev/disk/by-uuid/2016-04-01-20-38-38-00
root@archiso ~ # ls -l /dev/disk/by-uuid/2016-04-01-20-38-38-00
lrwxrwxrwx 1 root root 9 Apr 24 21:18 /dev/disk/by-uuid/2016-04-01-20-38-38-00 -> ../../sr0

と思って調べてみるとここにたどり着いた。 http://frankshin.com/installing-archlinux-on-dell-xps-13-late-2015-skylake-9350/

System Configuration -> SATA Operation = Disabled

で実際に設定を見てみるとぬぬぬ。という状態。 Disabled にすると見えそうな気がするがこれ Windows 領域に影響あるかな...

laughk commented 8 years ago

Disabled にすると見えそうな気がするがこれ Windows 領域に影響あるかな...

http://mo.kerosoft.com/0208

軽くググって上記の記事にたどり着く。 これを見て思い出したけど、XPS13でパーティションを整理した際も使えない状況にはなったのだが特にWindowsを使ってても体感するような問題は出ていなかった。

ってことで無効にしちゃう

laughk commented 8 years ago

SATA Operation = Disabled AHCI にしてみる

2016-05-03 追記

(追記終わり)

すると確かにデバイスが見えるようになった。

root@archiso ~ # lsblk       
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0          11:0    1   724M  0 rom  /run/archiso/bootmnt
loop0         7:0    0 313.1M  1 loop /run/archiso/sfs/airootfs
nvme0n1     259:0    0   477G  0 disk 
├─nvme0n1p1 259:1    0   500M  0 part 
├─nvme0n1p2 259:2    0   128M  0 part 
├─nvme0n1p3 259:3    0 123.3G  0 part 
├─nvme0n1p4 259:4    0   450M  0 part 
└─nvme0n1p5 259:5    0  10.8G  0 part 

parted でも見えた

1 root@archiso ~ # parted /dev/nvme0n1                                                                             :(
GNU Parted 3.2
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found
        partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) print                                                            
Model: Unknown (unknown)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Warning: failed to translate partition name
Number  Start   End    Size    File system  Name                          Flags
 1      1049kB  525MB  524MB   fat32        EFI system partition          boot, esp
 2      525MB   660MB  134MB                Microsoft reserved partition  msftres
 3      660MB   133GB  132GB   ntfs         Basic data partition          msftdata
 4      500GB   501GB  472MB   ntfs                                       hidden, diag
 5      501GB   512GB  11.6GB  ntfs                                       hidden, diag
laughk commented 8 years ago

ArchLinuxインストール用の領域を確保

EFI system partition はすでに存在するのでLinuxインストール用の領域だけ作る

root@archiso ~ # gdisk /dev/nvme0n1 
GPT fdisk (gdisk) version 1.0.1

The protective MBR's 0xEE partition is oversized! Auto-repairing.

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/nvme0n1: 1000215216 sectors, 476.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 48240CCD-5A3F-4E8A-8663-38846AF20D2F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1000215182
Partitions will be aligned on 2048-sector boundaries
Total free space is 716804717 sectors (341.8 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   EF00  EFI system partition
   2         1026048         1288191   128.0 MiB   0C01  Microsoft reserved ...
   3         1288192       259829759   123.3 GiB   0700  Basic data partition
   4       976631808       977553407   450.0 MiB   2700  
   5       977553408      1000214527   10.8 GiB    2700  

Command (? for help): n
Partition number (6-128, default 6): 
First sector (34-1000215182, default = 259829760) or {+-}size{KMGTP}: 
Last sector (259829760-976631807, default = 976631807) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/nvme0n1: 1000215216 sectors, 476.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 48240CCD-5A3F-4E8A-8663-38846AF20D2F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1000215182
Partitions will be aligned on 2048-sector boundaries
Total free space is 2669 sectors (1.3 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   EF00  EFI system partition
   2         1026048         1288191   128.0 MiB   0C01  Microsoft reserved ...
   3         1288192       259829759   123.3 GiB   0700  Basic data partition
   4       976631808       977553407   450.0 MiB   2700  
   5       977553408      1000214527   10.8 GiB    2700  
   6       259829760       976631807   341.8 GiB   8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/nvme0n1.
The operation has completed successfully.
root@archiso ~ # gdisk -l
GPT fdisk (gdisk) version 1.0.1

Problem opening -l for reading! Error is 2.
The specified file does not exist!
root@archiso ~ # gdisk -l /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/nvme0n1: 1000215216 sectors, 476.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 48240CCD-5A3F-4E8A-8663-38846AF20D2F
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1000215182
Partitions will be aligned on 2048-sector boundaries
Total free space is 2669 sectors (1.3 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   EF00  EFI system partition
   2         1026048         1288191   128.0 MiB   0C01  Microsoft reserved ...
   3         1288192       259829759   123.3 GiB   0700  Basic data partition
   4       976631808       977553407   450.0 MiB   2700  
   5       977553408      1000214527   10.8 GiB    2700  
   6       259829760       976631807   341.8 GiB   8300  Linux filesystem
root@archiso ~ # ls /dev/nvme0n1p6
/dev/nvme0n1p6

最後の確認がものすごくビビるけど、GPTでパーティションを追加するぞ!の意味なのですすめる。

laughk commented 8 years ago

Linux 用領域をxfsでフォーマット

root@archiso ~ # mkfs.xfs /dev/nvme0n1p6
meta-data=/dev/nvme0n1p6         isize=512    agcount=4, agsize=22400064 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0
data     =                       bsize=4096   blocks=89600256, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=43750, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
root@archiso ~ # 
laughk commented 8 years ago

/dev/nvme0n1p6 にベースシステムをインストール

ここまでくれば インストールガイド ほぼまんまでだいたい行けるはず...!!

mirror の設定

日本のミラーを一番上に持ってくる

root@archiso ~ # vim /etc/pacman.d/mirrorlist
root@archiso ~ # head -8 /etc/pacman.d/mirrorlist
##
## Arch Linux repository mirrorlist
## Sorted by mirror score from mirror status page
## Generated on 2016-04-01
##

## Score: 2.1, Japan
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

/dev/nvme0n1p6 をマウント

ガイドに従い /mnt

root@archiso ~ # mount /dev/nvme0n1p6 /mnt 
root@archiso ~ # df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p6  342G   33M  342G   1% /mnt

ベースシステムのインストール

基本的には base, base-devel だけでいいのだけどこれは絶対使うだろ!というやつはこの段階で一緒に入れる。

root@archiso ~ # pacstrap /mnt base base-devel zsh vim tmux git
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases...
 core                                         120.9 KiB   144K/s 00:01 [########################################] 100%
 extra                                       1759.5 KiB   423K/s 00:04 [########################################] 100%
 community                                      3.4 MiB   501K/s 00:07 [########################################] 100%
:: There are 50 members in group base:
:: Repository core
   1) bash  2) bzip2  3) coreutils  4) cryptsetup  5) device-mapper  6) dhcpcd  7) diffutils  8) e2fsprogs  9) file
   10) filesystem  11) findutils  12) gawk  13) gcc-libs  14) gettext  15) glibc  16) grep  17) gzip  18) inetutils
   19) iproute2  20) iputils  21) jfsutils  22) less  23) licenses  24) linux  25) logrotate  26) lvm2  27) man-db
   28) man-pages  29) mdadm  30) nano  31) netctl  32) pacman  33) pciutils  34) pcmciautils  35) perl  36) procps-ng
   37) psmisc  38) reiserfsprogs  39) s-nail  40) sed  41) shadow  42) sysfsutils  43) systemd-sysvcompat  44) tar
   45) texinfo  46) usbutils  47) util-linux  48) vi  49) which  50) xfsprogs

Enter a selection (default=all): 
:: There are 25 members in group base-devel:
:: Repository core
   1) autoconf  2) automake  3) binutils  4) bison  5) fakeroot  6) file  7) findutils  8) flex  9) gawk  10) gcc
   11) gettext  12) grep  13) groff  14) gzip  15) libtool  16) m4  17) make  18) pacman  19) patch  20) pkg-config
   21) sed  22) sudo  23) texinfo  24) util-linux  25) which

Enter a selection (default=all): 
warning: skipping target: file
warning: skipping target: findutils
warning: skipping target: gawk
warning: skipping target: gettext
warning: skipping target: grep
warning: skipping target: gzip
warning: skipping target: pacman
warning: skipping target: sed
warning: skipping target: texinfo
warning: skipping target: util-linux
warning: skipping target: which
resolving dependencies...
looking for conflicting packages...

Packages (152) acl-2.2.52-2  archlinux-keyring-20160402-1  attr-2.4.47-1  ca-certificates-20150402-1
               ca-certificates-cacert-20140824-2  ca-certificates-mozilla-3.23-3  ca-certificates-utils-20150402-1
               cracklib-2.9.6-1  curl-7.48.0-1  db-5.3.28-3  dbus-1.10.8-1  expat-2.1.1-1  gc-7.4.2-4  gdbm-1.11-1
               glib2-2.48.0-1  gmp-6.1.0-3  gnupg-2.1.11-1  gnutls-3.4.11-1  gpgme-1.6.0-2  gpm-1.20.7-6
               guile-2.0.11-3  hwids-20160306-1  iana-etc-20160314-1  iptables-1.6.0-1  kbd-2.0.3-1  keyutils-1.5.9-1
               kmod-22-1  krb5-1.13.2-3  libaio-0.3.110-1  libarchive-3.1.2-8  libassuan-2.4.2-1
               libatomic_ops-7.4.2-1  libcap-2.25-1  libdbus-1.10.8-1  libelf-0.166-1  libevent-2.0.22-2
               libffi-3.2.1-1  libgcrypt-1.7.0-1  libgpg-error-1.21-1  libidn-1.32-1  libksba-1.3.3-1
               libldap-2.4.44-1  libmnl-1.0.3-2  libmpc-1.0.3-1  libnftnl-1.0.5-1  libpipeline-1.4.1-1
               libsasl-2.1.26-7  libseccomp-2.2.3-1  libssh2-1.7.0-2  libsystemd-229-3  libtasn1-4.8-1
               libtirpc-1.0.1-2  libunistring-0.9.6-1  libusb-1.0.20-1  libutempter-1.1.6-2  libutil-linux-2.28-1
               linux-api-headers-4.4.1-1  linux-firmware-20160315.deb1d83-1  lz4-131-1  lzo-2.09-1  mkinitcpio-19-1
               mkinitcpio-busybox-1.24.1-1  mpfr-3.1.4-1  ncurses-6.0-4  nettle-3.2-1  npth-1.2-1  openresolv-3.7.2-1
               openssl-1.0.2.g-3  p11-kit-0.23.2-1  pacman-mirrorlist-20160422-1  pam-1.2.1-3  pambase-20130928-1
               pcre-8.38-3  perl-error-0.17024-1  pinentry-0.9.7-1  popt-1.16-7  readline-6.3.008-3  sqlite-3.12.2-1
               systemd-229-3  thin-provisioning-tools-0.6.1-2  tzdata-2016d-1  vim-runtime-7.4.1689-1  xz-5.2.2-1
               zlib-1.2.8-4  autoconf-2.69-2  automake-1.15-1  bash-4.3.042-4  binutils-2.26-3  bison-3.0.4-1
               bzip2-1.0.6-5  coreutils-8.25-1  cryptsetup-1.7.1-1  device-mapper-2.02.149-1  dhcpcd-6.10.2-1
               diffutils-3.3-2  e2fsprogs-1.42.13-1  fakeroot-1.20.2-1  file-5.26-1  filesystem-2015.09-1
               findutils-4.6.0-1  flex-2.6.0-2  gawk-4.1.3-1  gcc-5.3.0-5  gcc-libs-5.3.0-5  gettext-0.19.7-1
               git-2.8.0-1  glibc-2.23-1  grep-2.24-1  groff-1.22.3-6  gzip-1.7-1  inetutils-1.9.4-2
               iproute2-4.5.0-2  iputils-20160308.0db72a4-1  jfsutils-1.1.15-4  less-481-2  libtool-2.4.6-4
               licenses-20140629-1  linux-4.5.1-1  logrotate-3.9.2-1  lvm2-2.02.149-1  m4-1.4.17-1  make-4.1-3
               man-db-2.7.5-1  man-pages-4.05-1  mdadm-3.4-1  nano-2.5.3-1  netctl-1.11-1  pacman-5.0.1-2
               patch-2.7.5-1  pciutils-3.4.1-1  pcmciautils-018-7  perl-5.22.1-2  pkg-config-0.29.1-1
               procps-ng-3.3.11-2  psmisc-22.21-3  reiserfsprogs-3.6.24-1  s-nail-14.8.8-1  sed-4.2.2-3
               shadow-4.2.1-3  sudo-1.8.16-1  sysfsutils-2.1.0-9  systemd-sysvcompat-229-3  tar-1.28-1  texinfo-6.1-1
               tmux-2.2-1  usbutils-008-1  util-linux-2.28-1  vi-1:070224-2  vim-7.4.1689-1  which-2.21-1
               xfsprogs-4.3.0-1  zsh-5.2-1
-- -- snip -- --
laughk commented 8 years ago

fstab の作成

root@archiso ~ # genfstab -p /mnt >> /mnt/etc/fstab 
root@archiso ~ # cat /mnt/etc/fstab
# 
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>   <dump>  <pass>
# UUID=0236eb7e-e2ef-4385-9925-cd6c234c300a
/dev/nvme0n1p6          /           xfs         rw,relatime,attr2,inode64,noquota,noatime   0 1

SSD の寿命対策で noatime の追加をするのを忘れずにやる

laughk commented 8 years ago

基本的なシステムの設定をしていく

chroot

root@archiso ~ # arch-chroot /mnt 

ホスト名

まあ春を連想するカクテル名で

sh-4.3# echo 'cherry-blossom' > /etc/hostname

タイムゾーン

sh-4.3# ln -sv /usr/share/zoneinfo/Asia/To
Tokyo  Tomsk  
sh-4.3# ln -sv /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
'/etc/localtime' -> '/usr/share/zoneinfo/Asia/Tokyo'

ロケール

日本語と英語を最低限。 デフォルトは一旦日本語にしておく。

sh-4.3# vim /etc/locale.gen 
sh-4.3# grep -v '^#' /etc/locale.gen 
en_US.UTF-8 UTF-8  
ja_JP.UTF-8 UTF-8  
sh-4.3# locale-gen 
Generating locales...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.
sh-4.3# echo 'LANG=ja_JP.UTF-8' > /etc/locale.conf
sh-4.3# 
laughk commented 8 years ago

デフォルトのユーザーを作成

visudo で wheel グループに sudo を許可しておく。(コメントアウト外せばOK)

sh-4.3# useradd -m -s /bin/zsh -d /home/laughk -G wheel laughk
sh-4.3# visudo
sh-4.3# passwd laughk
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
sh-4.3# id laughk
uid=1000(laughk) gid=1000(laughk) groups=1000(laughk),10(wheel)
laughk commented 8 years ago
laughk commented 8 years ago

ブートローダインストール

下手に凝らずにGrubでいく。 今回のケースだと UEFI の箇所を参考にする https://wiki.archlinuxjp.org/index.php/GRUB#UEFI_.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0

grub, efibootmgr のインストール

sh-4.3# exit
root@archiso ~ # pacstrap /mnt grub efibootmgr
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
resolving dependencies...
looking for conflicting packages...

Packages (3) efivar-0.21-1  efibootmgr-0.12-1  grub-1:2.02.beta2-6

Total Download Size:    5.87 MiB
Total Installed Size:  28.97 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 grub-1:2.02.beta2-6-x86_64                     5.8 MiB  5.24M/s 00:01 [########################################] 100%
 efivar-0.21-1-x86_64                          61.2 KiB   390K/s 00:00 [########################################] 100%
 efibootmgr-0.12-1-x86_64                      13.8 KiB  0.00B/s 00:00 [########################################] 100%
(3/3) checking keys in keyring                                         [########################################] 100%
(3/3) checking package integrity                                       [########################################] 100%
(3/3) loading package files                                            [########################################] 100%
(3/3) checking for file conflicts                                      [########################################] 100%
(3/3) checking available disk space                                    [########################################] 100%
:: Processing package changes...
(1/3) installing grub                                                  [########################################] 100%
Generating grub.cfg.example config file...
This may fail on some machines running a custom kernel.
done.
Optional dependencies for grub
    freetype2: For grub-mkfont usage
    fuse: For grub-mount usage
    dosfstools: For grub-mkrescue FAT FS and EFI support
    efibootmgr: For grub-install EFI support [pending]
    libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue
    os-prober: To detect other OSes when generating grub.cfg in BIOS systems
    mtools: For grub-mkrescue FAT FS support
(2/3) installing efivar                                                [########################################] 100%
(3/3) installing efibootmgr                                            [########################################] 100%

今回の EFI パーティションに該当するのは /dev/nvme0n1p1 なので一旦マウントしてインストールする。

root@archiso ~ # mkdir /mnt/efi
root@archiso ~ # mount /dev/nvme0n1p1 /mnt/efi 
root@archiso ~ # arch-chroot /mnt /bin/bash
[root@archiso /]# ls /efi/
EFI
[root@archiso /]# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub --recheck
Installing for x86_64-efi platform.
efibootmgr: EFI variables are not supported on this system.
efibootmgr: EFI variables are not supported on this system.
Installation finished. No error reported.
[root@archiso /]# ls /efi/EFI/
Boot  dell  grub  Microsoft
[root@archiso /]# exit
root@archiso ~ # ls /mnt/efi/EFI 
Boot  dell  grub  Microsoft
laughk commented 8 years ago

UEFIのリストにgrubが出てこない

おそらく以下のリンクのものに近い状況なんだろうけど、詳細調査中。 https://wiki.archlinuxjp.org/index.php/Unified_Extensible_Firmware_Interface#.E3.83.95.E3.82.A1.E3.83.BC.E3.83.A0.E3.82.A6.E3.82.A7.E3.82.A2.E3.81.AE.E3.83.A1.E3.83.8B.E3.83.A5.E3.83.BC.E3.81.AB_UEFI_.E3.83.96.E3.83.BC.E3.83.88.E3.83.AD.E3.83.BC.E3.83.80.E3.83.BC.E3.81.8C.E8.A1.A8.E7.A4.BA.E3.81.95.E3.82.8C.E3.81.AA.E3.81.84

ただ色々弄った感触だと

FS1:\EFI\Microsft\Boot\bootmgfw.efi

を何かに置き換えてやらないといい感じにならないような気はする。 多分これを適切に設定された grub の efi に差し替えればいけるかも?(Windowの起動もgrubに寄せるとして)

laughk commented 8 years ago

:memo:

/efi/EFI/grub/grubx64.efi

ではなく

/efi/EFI/arch/grubx64.efi

FS1:\EFI\Microsft\Boot\bootmgfw.efi を置き換えてみたところ、デバイスが認識される形でGrubが上がってきた。


とはいえ色々試して

/dev/nvme0n1p1 を一旦 /boot に割り当てなおして再インストールしてしまったのがアダになりgrub以降のLinuxのbootで /boot 配下が見えない!となったので、 /boot(XFS以外) と / を別々に確保したうえで再インストールしてみて後で試してみる。

ちなみに ext4 にするなら /boot/ もわけなくてOK

laughk commented 8 years ago

GRUB を使うのを一旦あきらめる

どーも色々試行錯誤を続けたがうまく行かない。 行けたとしても rescue モードまでで、デバイスもちゃんと認識されずうまく起動ができない。 ということで以下のページを参考に systemd-boot でいく方針ですすめてみる

laughk commented 8 years ago

systemd-boot の設定

一旦おもむろに作業ログを貼っておく

[root@archiso /]# which bootctl
/usr/bin/bootctl
[root@archiso /]# uname -a
Linux archiso 4.4.5-1-ARCH #1 SMP PREEMPT Thu Mar 10 07:38:19 CET 2016 x86_64 GNU/Linux
[root@archiso /]# bootctl --path=/boot install
Created "/boot/EFI/systemd".
Created "/boot/loader".
Created "/boot/loader/entries".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/systemd/systemd-bootx64.efi".
Copied "/usr/lib/systemd/boot/efi/systemd-bootx64.efi" to "/boot/EFI/Boot/BOOTX64.EFI".
Created EFI boot entry "Linux Boot Manager".
[root@archiso /]# ls -l /boot/EFI/
total 24
drwxr-xr-x 2 root root 4096 Apr 26 08:21 arch
drwxr-xr-x 2 root root 4096 Apr 27 09:03 arch_grub
drwxr-xr-x 2 root root 4096 Apr 27 11:45 Boot
drwxr-xr-x 3 root root 4096 Apr 12 23:51 dell
drwxr-xr-x 4 root root 4096 Apr 27 09:27 Microsoft
drwxr-xr-x 2 root root 4096 Apr 27 11:45 systemd
[root@archiso /]# rm -rf /boot/EFI/arch
[root@archiso /]# rm -rf /boot/EFI/arch_grub
[root@archiso /]# ls -l /boot/EFI/
total 16
drwxr-xr-x 2 root root 4096 Apr 27 11:45 Boot
drwxr-xr-x 3 root root 4096 Apr 12 23:51 dell
drwxr-xr-x 4 root root 4096 Apr 27 09:27 Microsoft
drwxr-xr-x 2 root root 4096 Apr 27 11:45 systemd
[root@archiso /]# vim ^C
[root@archiso /]# ls -l /boot/EFI/Boot/
total 2400
-rwxr-xr-x 1 root root   80142 Feb 19 11:55 bootx64.efi
-rwxr-xr-x 1 root root 1159008 Mar 30 04:18 bootx64.efi.orig
-rwxr-xr-x 1 root root  121856 Apr 27 11:01 grubx64.efi
-rwxr-xr-x 1 root root  100656 Apr 27 10:23 HashTool.efi
-rwxr-xr-x 1 root root   80142 Apr 27 10:23 loader.efi
-rwxr-xr-x 1 root root  908192 Apr 27 10:38 shellx64_v2.efi
[root@archiso /]# vim /boot/loader/entries/arch.conf
[root@archiso /]# blkid -s PARTUUID -o value /dev/nvme0n1 
nvme0n1    nvme0n1p1  nvme0n1p2  nvme0n1p3  nvme0n1p4  nvme0n1p5  nvme0n1p6  
[root@archiso /]# blkid -s PARTUUID -o value /dev/nvme0n1p
nvme0n1p1  nvme0n1p2  nvme0n1p3  nvme0n1p4  nvme0n1p5  nvme0n1p6  
[root@archiso /]# blkid -s PARTUUID -o value /dev/nvme0n1p1
e289e7ff-1314-4588-9217-50de9105219c
[root@archiso /]# vim /boot/loader/entries/arch.conf
[root@archiso /]# vim /boot/loader/entries/arch.conf
[root@archiso /]# cat /boot/loader/entries/arch.conf
title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=e289e7ff-1314-4588-9217-50de9105219c rw
[root@archiso /]# ls /boot/
EFI  grub  initramfs-linux-fallback.img  initramfs-linux.img  loader  vmlinuz-linux
[root@archiso /]# 
laughk commented 8 years ago

options の root は / 領域でOK

[root@archiso /]# blkid -s PARTUUID -o value /dev/nvme0n1p6
7e92c4b5-7349-4fda-beed-83f3150e91e9
[root@archiso /]# vim /boot/loader/entries/arch.conf 
[root@archiso /]# cat /boot/loader/entries/arch.conf
title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=7e92c4b5-7349-4fda-beed-83f3150e91e9 rw
laughk commented 8 years ago

自動的にブートシーケンスに登録された!!!

GRUB のときは自動で追加されるとかなかったのにあっさりできた。

2016-04-26 17 57 03

laughk commented 8 years ago

SATA Operation は AHCI にするのを忘れずに

RAID On にするとデバイスが認識できない関係で起動でコケてしまう。 残念だけど仕方ないか...

2016-04-26 18 32 24

laughk commented 8 years ago

ここまでの段階で無事起動にArchLinuxとWindows10のデュアルブート(っぽい)環境になることを確認できた。 特に https://github.com/laughk/dell-xps15-9550/issues/5#issuecomment-214827208 とかはまだ荒削りだけど、試行錯誤メモとしては十分か。

laughk commented 8 years ago

GUI環境も基本的なところはOK

laughk/dell-xps15-9550/issues/7

ということでBaseインストールは完了てみて良さそうだ!