आर्क GRUB एक गैर lvm डिस्क पर /run/lvm/lvmetad.socket के लिए पूछ रहा है


18

मैं इस स्क्रिप्ट को ArchWiki सेटअप प्रक्रिया के आधार पर चला रहा हूं । यह GRUB कॉन्फ़िगरेशन चरण पर विफल रहता है

मैं 1 जीबी रैम के साथ वीएमवेयर प्लेयर के अंदर आर्चलिनक्स-2013.12.01-dual.iso का उपयोग कर रहा हूं, sda810 एमबी है। मैंने होस्ट मशीन पर CIFS शेयर भी लगाया है।

# DEV=sda
# PART=sda1
# echo "1,,L,*" | sfdisk /dev/$DEV
# mkfs.ext3 /dev/$PART
# mount /dev/$PART /mnt
# pacstrap -i /mnt base 
# genfstab -U -p /mnt >> /mnt/etc/fstab
# arch-chroot /mnt 
# pacman -S grub
# pacman -S os-prober
# grub-mkconfig -o /boot/grub/grub.cfg

मुझे मिला:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad: No such file or directory. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  No volume groups found
error: out of memory.
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 164
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.done

मैंने LVM विभाजन / ड्राइव स्थापित नहीं किया है।

# fdisk -l /dev/sda

Disk /dev/sda: 819 MiB, 858783744 bytes, 1677312 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: dos
Disk identifier: 0x000d5a2a

Device    Boot Start       End Blocks  Id System
/dev/sda1       2048   1677311 837632  83 Linux


# lsblk 

NAME              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0                 2:0    1     4K  0 disk 
sda                 8:0    0   819M  0 disk 
└─sda1              8:1    0   818M  0 part /mnt
sr0                11:0    1   522M  0 rom  /run/archiso/bootmnt
sr1                11:1    1    10M  0 rom  
loop0               7:0    0 224.2M  1 loop /run/archiso/sfs/root-image
loop1               7:1    0   1.4G  1 loop 
└─arch_root-image 254:0    0   1.4G  0 dm   /
loop2               7:2    0   1.4G  0 loop 
└─arch_root-image 254:0    0   1.4G  0 dm   /

/boot/grub/grub.cfg.new है:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos 
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  9d1d349e-d061-4e0f-9312-be19ca2dcb74
else
  search --no-floppy --fs-uuid --set=root 9d1d349e-d061-4e0f-9312-be19ca2dcb74
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-9d1d349e-d061-4e0f-9312-be19ca2dcb74' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos 
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  9d1d349e-d061-4e0f-9312-be19ca2dcb74
    else
      search --no-floppy --fs-uuid --set=root 9d1d349e-d061-4e0f-9312-be19ca2dcb74
    fi
    echo    'Loading Linux core repo kernel ...'
    linux   /boot/vmlinuz-linux root=UUID=9d1d349e-d061-4e0f-9312-be19ca2dcb74 rw  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initramfs-linux.img
}
menuentry 'Arch Linux, with Linux core repo kernel (Fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-9d1d349e-d061-4e0f-9312-be19ca2dcb74' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos 
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  9d1d349e-d061-4e0f-9312-be19ca2dcb74
    else
      search --no-floppy --fs-uuid --set=root 9d1d349e-d061-4e0f-9312-be19ca2dcb74
    fi
    echo    'Loading Linux core repo kernel ...'
    linux   /boot/vmlinuz-linux root=UUID=9d1d349e-d061-4e0f-9312-be19ca2dcb74 rw  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initramfs-linux-fallback.img
}
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9d1d349e-d061-4e0f-9312-be19ca2dcb74' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos 
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  9d1d349e-d061-4e0f-9312-be19ca2dcb74
    else
      search --no-floppy --fs-uuid --set=root 9d1d349e-d061-4e0f-9312-be19ca2dcb74
    fi
    echo    'Loading Linux core repo kernel ...'
    linux   /boot/vmlinuz-linux root=UUID=9d1d349e-d061-4e0f-9312-be19ca2dcb74 rw  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initramfs-linux-fallback.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-9d1d349e-d061-4e0f-9312-be19ca2dcb74' {

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/60_memtest86+ ###
### END /etc/grub.d/60_memtest86+ ###

एक बग की तरह दिखता है - "कृपया एक बग रिपोर्ट दर्ज करें /boot/grub/grub.cfg.new फ़ाइल के साथ संलग्न करें"
पैंथर

1
क्या आप grsec चला रहे हैं? क्या आपके पास पर्याप्त मेमोरी है?
डेसी

@ warl0ck: जीर्णता? मैं archlinux-2013.12.01-dual.iso384 एमबी रैम के साथ VMware प्लेयर के अंदर मानक का उपयोग कर रहा हूं । sda810 एमबी है। एक माध्यमिक आईएसओ पर sr1, मैंने विम को स्थापित करने के लिए एक स्क्रिप्ट चलाई और मेजबान मशीन पर सीआईएफएस शेयर को माउंट करने के लिए।
एंटोनियो

जवाबों:


22

मैं अभी उसी मुद्दे पर भागा, और एक और समाधान पाया। मूल रूप से, इसमें मेजबान /runनिर्देशिका को अतिथि के लिए उपलब्ध कराना शामिल है।

सबसे पहले, हम माउंट करते हैं /runजहां इसे अतिथि द्वारा पहुँचा जा सकता है। मैं मान लूंगा कि आपका इंस्टॉल विभाजन चालू है/mnt

mkdir /mnt/hostrun
mount --bind /run /mnt/hostrun

फिर, हम अतिथि में चुरोट करते हैं, और मेहमानों में हमारे मेजबान को माउंट /run/lvmकरते हैं/run

arch-chroot /mnt /bin/bash
mkdir /run/lvm
mount --bind /hostrun/lvm /run/lvm

फिर आप चला सकते हैं grub-mkconfigऔर grub-installकिसी भी एलवीएम त्रुटियों के बिना। यदि आप LVM के साथ स्थापित कर रहे हैं, तो यह भी व्यवहार करता है कि यह किस लायक है।

जब किया जाता है, चेरोट को निगलना से umount /run/lvmपहले याद रखें exit


6

@Guest द्वारा ट्रिगर किए गए शोध के बाद, मैंने पाया कि grub-mkconfigसहायक स्क्रिप्ट में एक स्पष्ट बग है /etc/grub.d/10_linux, जो GRUB सबमेनू सिस्टम के साथ संगत नहीं है। के रूप में एक वापसी initramfs का उपयोग आर्क और डेरिवेटिव के लिए बहुत विशिष्ट है, यह अपस्ट्रीम द्वारा समर्थित नहीं है grub-mkconfig। एक निश्चित निर्धारण अभी भी जारी है। Bugs.archlinux.org पर अधिक विवरण देखें

इसलिए अस्थायी वर्कअराउंड GRUB में सबमेनस को अपग्रेड करके अक्षम कर रहा है:

GRUB_DISABLE_SUBMENU=y

को /etc/default/grub

दुर्भाग्य से, सबमेनस को अक्षम करके, मैं केवल दूसरी त्रुटि से बचता हूं grub-mkconfig

के साथ:

# arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg

मुझे अभी भी मिलता है:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad: No such file or directory. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  No volume groups found

मैंने कभी भी LVM विभाजन / ड्राइव नहीं लगाए हैं और जैसा कि आप मेरे प्रश्न से देख सकते हैं, मैंने सिस्टम को विभाजन और स्वरूपित किया। वैसे भी, GRUB त्रुटि को ठीक करने के बाद, मैंने दोनों की कोशिश की:

systemctl start lvmetad

तथा

systemctl start lvmetad.service

और मैं pacstrapफिर से दौड़ा , बिना सफलता के।

वर्तमान त्रुटि गैर-महत्वपूर्ण है

arch-chroot /mnt grub-install --target=i386-pc --recheck /dev/$DEV

आसानी से जाता है और मैं बूट कर सकता हूं $DEV


अपने स्वयं के प्रश्न का उत्तर देना ठीक है, इसे सामुदायिक विकि पोस्ट में बनाने की कोई आवश्यकता नहीं है।
terdon

1
मैं समझ नहीं करता है, तो यह एक जवाब या एक और सवाल है
माइकल Mrozek

@MichaelMrozek: खैर, यह सवाल का आंशिक जवाब / समाधान है: दूसरी त्रुटि तय हो गई है; सबसे विशेष रूप से, पहली त्रुटि अब आर्क सेटअप के लिए गैर-महत्वपूर्ण दिखाती है। मैं अभी भी जांच कर रहा हूं और उम्मीद है कि बाद को भी ठीक कर लिया जाएगा।
एंटोनियो

3

मुझे भी यही समस्या थी लेकिन मुझे एक समाधान मिला जो मेरे लिए काम करता है: बस हटा दें os-prober


1
मेरे सरल उदाहरण के लिए, यह ठीक है। लेकिन एक ऐसे उदाहरण में जहां आपके पास अन्य ओएस है और एक मल्टीबूट मेनू चाहते हैं क्या आप मैन्युअल रूप से प्रविष्टियां सेट करते हैं?
एंटोनियो

1
ओएस-प्रोबेर को न हटाएं, बस इसके निष्पादन योग्य बिट को अक्षम करें: chmod -x /etc/grub.d/30_os-proberऔर इसे चेतावनी को हटा देना चाहिए।
न्यूक्लियरपेयन

यह वास्तव में एक समाधान नहीं है - जब तक आप केवल एक प्रणाली का उपयोग नहीं करते हैं, ओएस-प्रोबर ग्रब का एक अनिवार्य हिस्सा है।
डेबोरॉस


0

पहली त्रुटि संदेश के लिए, ग्रब LVM मेटाडेटा डेमन से कनेक्ट नहीं हो सकता, इस कमांड को रूट के रूप में चलाने का प्रयास करें (जो इसे शुरू करेगा):

systemctl start lvmetad

और दूसरा, अपने वीएम को आवंटित रैम को बढ़ाने की कोशिश करें, शायद 512M, और फिर से ग्रब चलाएं।


मैं 1 जीबी तक RAM सेट करता हूं, systemctl start lvmetad(चेरोट के बाहर चलाएं) कोई त्रुटि संदेश नहीं देता है। लेकिन grub-mkconfigअंदर फिर से दौड़ना arch-chrootबिल्कुल वही त्रुटि देता है (मेम त्रुटि सहित)।
एंटोनियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.