web-dev-qa-db-ja.com

Grubを新しいパーティションに完全に移動

Grubを新しいパーティションに完全に移動するにはどうすればよいですか? Ubuntu(Kubuntu)をインストールしたとき、十分ではないように見える/bootパーティションに256 MiBだけを割り当てました。新しいカーネルをインストールするたびに、十分なスペースがないためインストールが途中で失敗するため、手動で介入する必要があります。そこで、古いブートパーティション/dev/sdb5から新しい512 MiBパーティション/dev/sdb7にgrubを移動しようとしています。

新しいブートパーティションを使用するように/etc/fstabを編集しました。

# /boot was on /dev/sdb5 during installation
#UUID=f1fcbfbe-7943-4e48-9796-8d0c42076c0b      /boot   ext4    defaults        0       2
# /boot is now on /dev/sdb7
UUID=70d8be3a-6b6c-4722-ab0d-e79d93e6dd1c       /boot   ext4    defaults        0       2

/boot/efi/dev/sdb2)と/boot/dev/sdb5)のマウントを解除しました。そして、/dev/sdb7/bootとしてマウントし、/boot/efiを再マウントし、/dev/sdb5/mnt/bootとして再マウントしました。

私が走った:

$ Sudo grub-install /dev/sdb7
Installing for x86_64-efi platform.
Installation finished. No error reported.

そして:

$ Sudo update-grub
Generating grub configuration file ...
Found Windows Boot Manager on /dev/sdb2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done

ただし、Linuxイメージは/bootにありません:

$ ls -1 /boot
efi
grub
lost+found

古い/bootには次のものがあります:

$ ls -1 /mnt/boot/
abi-4.15.0-32-generic
abi-4.15.0-33-generic
config-4.15.0-32-generic
config-4.15.0-33-generic
efi
grub
initrd.img-4.15.0-33-generic
lost+found
memtest86+.bin
memtest86+.elf
memtest86+_multiboot.bin
retpoline-4.15.0-32-generic
retpoline-4.15.0-33-generic
System.map-4.15.0-32-generic
System.map-4.15.0-33-generic
vmlinuz-4.15.0-33-generic

ステップが抜けているに違いない。これを行うための適切なプロセスは何ですか? Linuxイメージを再構築するためのコマンドがありませんか?

注:/boot/とは別のパーティションにしたい理由は、/がLUKS暗号化ext4パーティションであるためです。


Sudo fdisk -lからの出力:

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: CFE364AE-6B98-4A85-BE10-7E8A8833426F

Device         Start       End   Sectors   Size Type
/dev/sda1       2048 976762879 976760832 465.8G Microsoft basic data
/dev/sda2  976762880 977287167    524288   256M Linux filesystem


Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 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: 1AB601E6-CACA-4A3F-828A-A334CC3564DF

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048     923647     921600   450M Windows recovery environment
/dev/sdb2      923648    1128447     204800   100M EFI System
/dev/sdb3     1128448    1161215      32768    16M Microsoft reserved
/dev/sdb4     1161216 1534093311 1532932096   731G Microsoft basic data
/dev/sdb5  1534093312 1534617599     524288   256M Linux filesystem
/dev/sdb6  1534617600 1952475135  417857536 199.3G Linux filesystem
/dev/sdb7  1952475136 1953523711    1048576   512M Linux filesystem




Disk /dev/mapper/sdb6_crypt: 199.3 GiB, 213940961280 bytes, 417853440 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

lsblk -lfからの出力:

NAME       FSTYPE      LABEL          UUID                                 MOUNTPOINT
sda                                                                        
sda1       ntfs        Extra Disk     54186D8E186D7042                     
sda2       ext4                       fae6b821-6644-4883-a2f1-da5c42485431 
sdb                                                                        
sdb1       ntfs        Recovery       44F21BC7F21BBC5C                     
sdb2       vfat                       941C-5A1E                            /boot/efi
sdb3                                                                       
sdb4       ntfs                       6C32289F3228706E                     
sdb5       ext4        Linux Boot Old f1fcbfbe-7943-4e48-9796-8d0c42076c0b /boot
sdb6       crypto_LUKS                b2d73541-783b-4336-a62c-1e11d0cc2b47 
sdb7       ext4        Linux Boot     70d8be3a-6b6c-4722-ab0d-e79d93e6dd1c 
sr0                                                                        
sdb6_crypt ext4        Linux Root     1e8b2b29-1857-4b38-84ee-d3c386f5085e /
7
cpburnz

次の方法でそれを達成することができました。

以下は、/bootパーティションをsda7からsda9に変更したときの実際のコマンドラインビューです

kubuntu@kubuntu:~$ Sudo blkid
/dev/sda2: UUID="BCB3-3DA0" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="e5db3aba-af70-4112-8858-1aff620887a0"
/dev/sda3: UUID="F2B6E7A8B6E76C13" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="02c16852-6715-42db-ac16-c9007d86934a"
/dev/sda4: UUID="2d2846e3-4382-4dec-bad3-ec27c9f3311d" TYPE="ext4" PARTUUID="67dd28fb-4a80-4deb-aa25-8f1b93f1a4ba"
/dev/sda5: LABEL="SAS DI" UUID="605EEA015EE9D038" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="82da16ec-8c57-41b8-9f8b-e2d2bdc3b183"
/dev/sda6: LABEL="MADURI" UUID="C4F8CC63F8CC54F8" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6c75ef1c-376c-4ede-9072-3a888b0bf94d"
/dev/sda7: UUID="4eab37c8-7d22-4580-b53e-47e8768318c8" TYPE="ext4" PARTUUID="8d49090a-7495-4f10-a83d-3e4f4abca525"
/dev/sda8: UUID="e569a993-a701-4b1f-acc1-ba0e862ba0de" TYPE="ext4" PARTLABEL="Kubuntu 18.04" PARTUUID="af772c38-570b-4e9b-a5ce-ca26b28bec1a"
/dev/sda9: UUID="360b1c4c-b6f8-49fd-93e2-c9c086e95e4c" TYPE="ext4" PARTUUID="3327a153-0c8a-46c1-a23d-ef4774564875"
/dev/loop0: TYPE="squashfs"
/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="c2ca0fe9-67db-468a-bf0f-8d9ce78cf129"
/dev/sdb1: UUID="2018-07-25-03-28-48-00" LABEL="Kubuntu 18.04.1 LTS AMD64" TYPE="iso9660" PTUUID="418c5dc0" PTTYPE="dos" PARTUUID="418c5dc0-01"
/dev/sdb2: SEC_TYPE="msdos" UUID="0D5F-1DB6" TYPE="vfat" PARTUUID="418c5dc0-02"
kubuntu@kubuntu:~$ Sudo mount /dev/sda8 /mnt
kubuntu@kubuntu:~$ Sudo mount /dev/sda9 /mnt/boot
kubuntu@kubuntu:~$ Sudo chroot /mnt
root@kubuntu:/# Sudo nano /etc/fstab
Sudo: unable to resolve Host kubuntu: Resource temporarily unavailable
root@kubuntu:/# exit
exit
kubuntu@kubuntu:~$ Sudo mkdir /mnt/home/OBP
kubuntu@kubuntu:~$ Sudo mount /dev/sda7 /mnt/home/OBP
kubuntu@kubuntu:~$ Sudo cp -r /mnt/home/OBP/* /mnt/boot/
kubuntu@kubuntu:~$ Sudo mount /dev/sda2 /mnt/boot/efi
kubuntu@kubuntu:~$ for i in /sys /proc /dev /run; do Sudo mount --bind "$i" "/mnt$i"; done
kubuntu@kubuntu:~$ Sudo chroot /mnt                                                                                                                                                             
root@kubuntu:/# update-grub                                                                                                                                                                     
Generating grub configuration file ...                                                                                                                                                          
Found linux image: /boot/vmlinuz-4.15.0-29-generic                                                                                                                                              
Found initrd image: /boot/initrd.img-4.15.0-29-generic                                                                                                                                          
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.                                                                                                              
Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi                                                                                                                        
Found Ubuntu 18.10 (18.10) on /dev/sda4                                                                                                                                                         
Adding boot menu entry for EFI firmware configuration                                                                                                                                           
done                                                                                                                                                                                            
root@kubuntu:/# grub-install /dev/sda                                                                                                                                                           
Installing for x86_64-efi platform.                                                                                                                                                             
Installation finished. No error reported.                                                                                                                                                       
root@kubuntu:/# update-grub                                                                                                                                                                     
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-29-generic
Found initrd image: /boot/initrd.img-4.15.0-29-generic
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Found Ubuntu 18.10 (18.10) on /dev/sda4
Adding boot menu entry for EFI firmware configuration
done
root@kubuntu:/# ls -1 /boot
abi-4.15.0-29-generic
config-4.15.0-29-generic
efi
grub
initrd.img-4.15.0-29-generic
lost+found
memtest86+.bin
memtest86+.elf
memtest86+_multiboot.bin
retpoline-4.15.0-29-generic
System.map-4.15.0-29-generic
vmlinuz-4.15.0-29-generic
root@kubuntu:/# lsblk -lf
NAME  FSTYPE   LABEL                     UUID                                 MOUNTPOINT
loop0 squashfs                                                                
sda                                                                           
sda1                                                                          
sda2  vfat                               BCB3-3DA0                            /boot/efi
sda3  ntfs                               F2B6E7A8B6E76C13                     
sda4  ext4                               2d2846e3-4382-4dec-bad3-ec27c9f3311d 
sda5  ntfs     SAS DI                    605EEA015EE9D038                     
sda6  ntfs     MADURI                    C4F8CC63F8CC54F8                     
sda7  ext4                               4eab37c8-7d22-4580-b53e-47e8768318c8 /home/OBP
sda8  ext4                               e569a993-a701-4b1f-acc1-ba0e862ba0de /
sda9  ext4                               360b1c4c-b6f8-49fd-93e2-c9c086e95e4c /boot
sdb   iso9660  Kubuntu 18.04.1 LTS AMD64 2018-07-25-03-28-48-00               
sdb1  iso9660  Kubuntu 18.04.1 LTS AMD64 2018-07-25-03-28-48-00               
sdb2  vfat     Kubuntu 18.04.1 LTS AMD64 0D5F-1DB6                            
sr0                                                                           
root@kubuntu:/# exit
exit
kubuntu@kubuntu:~$ shutdown now

「Kubuntuを試す」セッションにログオンする前に知っておくべきこと。

  1. ルートパーティション。私の場合、/dev/sda8です。
  2. EFIパーティション。私の場合、/dev/sda2です。
  3. /boot古いパーティション。私の場合、/dev/sda7です。
  4. 新しい/bootパーティション。私の場合、/dev/sda9です。
  5. ハードディスクのドライブ文字。私の場合、それはsdaです。

ブートパーティションをsda7からsda9に変更します

enter image description here

Kubuntu 18.04「Try Kubuntu」セッションでログオンします。

Konsoleを開き、コマンドを実行します

  1. Sudo blkidおよびsda9である新しい/ bootパーティションになるパーティションのUUIDをコピーします

  2. Sudo mount /dev/sda8 /mnt#ルートパーティションのマウント

  3. Sudo mount /dev/sda9 /mnt/boot#新しい/ bootパーティションのマウント

  4. Sudo chroot /mnt

  5. nano /etc/fstab#fstabファイルを開きます

/bootファイル内の/etc/fstabのUUID部分まで、矢印キーで手動で下にスクロールします。

古いブートパーティションのUUIDを削除して、コピーしたUUID(手順1から)を貼り付けます。

ファイルを保存するには、を押します Ctrl+X、 Y そして Enter

  1. exit#chrootを終了します

/boot/efiパーティションをマウントする前に、古いブートパーティションのデータを新しいブートパーティションにコピーする必要があります。

  1. Sudo mkdir /mnt/home/OBP#古いブートパーティションをマウントするためのフォルダーの作成
  2. Sudo mount /dev/sda7 /mnt/home/OBP#古いブートパーティションのマウント
  3. Sudo cp -r /mnt/home/OBP/* /mnt/boot/
  4. Sudo mount /dev/sda2 /mnt/boot/efi
  5. for i in /sys /proc /dev /run; do Sudo mount --bind "$i" "/mnt$i"; done
  6. Sudo chroot /mnt
  7. update-grub
  8. grub-install /dev/sda
  9. update-grub
  10. exit
  11. shutdown now

システムを新たに起動すると、古いブートパーティションを削除できるようになります。

enter image description here

4
PRATAP

/bootには256 MB、/には200 GB

たくさんのスペースがありますが、/bootディレクトリは「スペースチャレンジ」です。 /bootsdb5から/からsdb6に移動することをお勧めします。

/bootを新しいパーティションsdb7に移動する現在の計画は、512 MBのみであると思われます。複数のカーネルをテストする場合、/bootがGBになることがあります。

/boot/に移動する方法

すでに答えがあります here

はい、可能です。また、簡単ではありません。分離された/ bootパーティションまたは/パーティションを移動する場合は、まずfstabエントリの変更を検討する必要があります。

ファイルを新しいパーティションに移動する場合は、コピー中にcp -pを使用してアクセス許可を保持することを忘れないでください。 /etc/fstabを、使用するパーティションの新しいUUIDに合わせて調整します。 blkid /dev/sdXnを実行することにより、パーティションuuidを取得できます。ここで、Xはドライブの名前で、n個のパーティションです。

また、blkidを使用してラベルをパーティションに添付し、ラベルを介してマウントすることもできます。詳細はman blkidを読んでください。

パーティションを変更して/ etc/fstabを調整したら、update-grub-Debian/Ubuntuスクリプトで使用可能、またはgrub-mkconfig -o /boot/grub/grub.cfgを実行して新しい設定ファイルを生成し、ボットした最初のhddにgrubを再インストールする必要がありますから。 grub-install --recheck /dev/sdb

もちろん、/ mntに新しい/または/ bootパーティションをコピーしてマウントし、すべてのファイルをコピーした後、それらを/および/ boot chrootとしてマウントし、正しく実行したい場合にのみgrubの更新を実行することを忘れないでください。

3

したがって、古いディレクトリから新しいディレクトリにすべてのカーネルファイルを移動/コピーし、grubを更新するだけでよいと思います。試してください:Sudo cp /mnt/boot/* /boot && Sudo update-grub

1
metallic