https://bugs.debian.org/cgi-bin/bugrepo ... bug=774939
This should help with some of the worries about upgrades, hopefully.
I'm not sure how it'll be implemented (haven't followed too closely), but I guess the upgrade to Jessie will pull in systemd, allowing GRUB to select that as init, and only if the admin installs sytemd-sysv will SysVinit actually be removed due to the package conflict.
Not sure what the plan is for GRUB 1, Lilo, etc. etc...
Scheduled Maintenance: We are aware of an issue with Google, AOL, and Yahoo services as email providers which are blocking new registrations. We are trying to fix the issue and we have several internal and external support tickets in process to resolve the issue. Please see: viewtopic.php?t=158230
GRUB2 / Jessie looks like it will show boot options for init
-
- Posts: 2121
- Joined: 2009-10-21 01:03
GRUB2 / Jessie looks like it will show boot options for init
The Forum's search box is terrible. Use site specific search, e.g.
https://www.google.com/search?q=site%3A ... terms+here
https://www.google.com/search?q=site%3A ... terms+here
Re: GRUB2 / Jessie looks like it will show boot options for
I noticed this some days ago in sid. In /etc/grub.d/10_linux for each entry a number of "supported inits" (defined in SUPPORTED_INITS) is iterated and for those that are found an additional entry is generated.confuseling wrote:https://bugs.debian.org/cgi-bin/bugrepo ... bug=774939
This should help with some of the worries about upgrades, hopefully.
I'm not sure how it'll be implemented (haven't followed too closely), but I guess the upgrade to Jessie will pull in systemd, allowing GRUB to select that as init, and only if the admin installs sytemd-sysv will SysVinit actually be removed due to the package conflict.
Not sure what the plan is for GRUB 1, Lilo, etc. etc...
I haven't tried it yet (I boot with systemd), but it feels nice to have a backup for those times where systemd causes or triggers a boot issue..
- Head_on_a_Stick
- Posts: 14114
- Joined: 2014-06-01 17:46
- Location: London, England
- Has thanked: 81 times
- Been thanked: 133 times
Re: GRUB2 / Jessie looks like it will show boot options for
Just installed GRUB for the first time in my Debian system and the menu does indeed have boot options for SysVinit
Unfortunately, because my /boot is shared between Debian and Arch it also gives this option for Arch as well
Purging...
Unfortunately, because my /boot is shared between Debian and Arch it also gives this option for Arch as well
Purging...
deadbang
-
- Posts: 25
- Joined: 2014-04-26 11:52
- Location: Ireland
Re: GRUB2 / Jessie looks like it will show boot options for
Oh ? What were you using previously ?Head_on_a_Stick wrote:Just installed GRUB for the first time in my Debian system...
- Head_on_a_Stick
- Posts: 14114
- Joined: 2014-06-01 17:46
- Location: London, England
- Has thanked: 81 times
- Been thanked: 133 times
Re: GRUB2 / Jessie looks like it will show boot options for
I use gummiboot -- it is fantastic!Eireannach wrote:Oh ? What were you using previously ?
deadbang
Re: GRUB2 / Jessie looks like it will show boot options for
grub 0.95 orig. gnu-alpha src still works for me (though i have an "old" bios) with just a ?little? hack
grub sets up CPU memory model and loads kernel, possibly copying kernel params to a well known space in memory. this may include copying an initrd to memory and including the pointer in the kernel bootstrap memory area. initrd is made by mk-initrd(1)
but you should never confuse that with "grub hot-edits only debian specific initrd and then copies this modified initrd to kernel memory". that's just a horrid thing even if grub could do it. anyway the initrd (and certain kernel debug features if allowed) allow one a way to get an (cmdline,gui) interface before all modules load (if that's even possible on some given hw: on some, absolutely NOT)
# -----------------------------------------
case $foo in
grub-0.95)
CFLAGS="`echo "$CFLAGS" | awk '{sub("-march[^ ]*","");print}'`"
CFLAGS="`echo "$CFLAGS" | awk '{sub("-O2","");print}'`"
CFLAGS="$CFLAGS -O0 -march=$lCPU"
CXXFLAGS="`echo "$CXXFLAGS" | awk '{sub("-march[^ ]*","");print}'`"
CXXFLAGS="`echo "$CXXFLAGS" | awk '{sub("-O2","");print}'`"
CXXFLAGS="$CXXFLAGS -O0 -march=$lCPU"
opt="`echo "$opt" | awk '{sub("--disable-dependency-tracking","");print}'`"
export CFLAGS CXXFLAGS
# optional allows remote img boot (note: need a complex img + tftp or bootp)
# a few popular see ./configure for list of (old) eth card compat
# opt="$opt --enable-rtl8139 --enable-ne --enable-eepro100" # isa port addr
opt="$opt --enable-rtl8139 --enable-eepro100"
cd "$dir/"
cd netboot/
[ ! -f main.c.old ] && {
cp main.c main.c.old
cat << EOF | ed || true
r main.c
59c
unsigned char *end_of_rfc1533 = NULL;
.
57c
struct bootpd_t bootp_data;
.
wq main.c
EOF
}
for x in osdep.h
do
[ ! -f $x.old ] && {
cp $x $x.old
cat << EOF | ed || true
r $x
/linux-asm-io.h/
.,.d
.a
/* not in orig (maybe not linux build) and doesnt work on newer gnu/linux */
#include <features.h>
#if defined(__linux__) && defined(__GLIBC__) && __GLIBC__ <= 1
/* #include "linux-asm-string.h" unsure why never used but present */
#include "linux-asm-io.h"
#warning "# non-glibc linux-old io.h #"
#endif
#if defined(__GLIBC__) && __GLIBC__ > 1
#warning "# gnu sys/io.h #"
#include <sys/io.h>
#endif
.
wq $x
EOF
}
done
[ ! -f timer.h.old ] && {
cp timer.h timer.h.old
cat << EOF | ed || true
r timer.h
57,62c
extern inline int timer2_running(void);
extern inline void waiton_timer2(unsigned int ticks);
.
52,55d
wq timer.h
EOF
}
[ ! -f timer.c.old ] && {
cp timer.c timer.c.old
cat << EOF | ed || true
r timer.c
21a
inline int timer2_running(void)
{
return ((inb(PPC_PORTB) & PPCB_T2OUT) == 0);
}
inline void waiton_timer2(unsigned int ticks)
{
load_timer2(ticks);
while ((inb(PPC_PORTB) & PPCB_T2OUT) == 0)
;
}
.
wq timer.c
EOF
}
cd ..
cd stage2/
# gcc no long has option -fwritable-strings
[ ! -f Makefile.in.old ] && {
cp Makefile.in Makefile.in.old
cat << EOF | ed || true
r Makefile.in
%s/fwritable-strings/DFOO_IGNORE_ME/
wq Makefile.in
EOF
}
[ ! -f builtins.c.old ] && {
cp builtins.c builtins.c.old
cat << EOF | ed || true
r builtins.c
3515c
int find_ascii_code (char *key)
.
3498c
int find_key_code (char *key)
.
1766c
void disk_read_blocklist_func (int sector, int offset, int length)
.
1750c
void disk_read_savesect_func (int sector, int offset, int length)
.
591c
int color_number (char *str)
.
144c
void disk_read_blocklist_func (int sector, int offset, int length)
.
wq builtins.c
EOF
}
# should not matter if static or global (unsued except here)
# however author had marked as global someone revised it to differ with .h decl
[ ! -f smp-imps.c.old ] && {
cp smp-imps.c smp-imps.c.old
cat << EOF | ed || true
r smp-imps.c
256,260c
int imps_enabled = 0;
int imps_num_cpus = 1;
unsigned imps_lapic_addr = ((unsigned) (&lapic_dummy)) - LAPIC_ID;
unsigned char imps_cpu_apic_map[IMPS_MAX_CPUS];
unsigned char imps_apic_cpu_map[IMPS_MAX_CPUS];
.
252c
int imps_any_new_apics = 0;
.
wq smp-imps.c
EOF
}
[ ! -f char_io.c.old ] && {
cp char_io.c char_io.c.old
cat << EOF | ed || true
r char_io.c
1192c
int end_addr (void)
.
1181c
int start_addr (void)
.
wq char_io.c
EOF
}
# assume if present defines the usual, ie __int8_t
[ ! -f ufs2.h.old ] && {
cp ufs2.h ufs2.h.old
cat << EOF | ed || true
r ufs2.h
76a
#endif /* _BITS_TYPES_H */
.
66a
#endif /* STDINT_H */
#ifndef _BITS_TYPES_H
.
49a
#ifndef _STDINT_H
.
wq ufs2.h
EOF
}
[ ! -f fsys_ufs2.c.old ] && {
cp fsys_ufs2.c fsys_ufs2.c.old
cat << EOF | ed || true
r fsys_ufs2.c
58a
#if defined(__GLIBC__) && __GLIBC__ > 1
#include <stdint.h>
#include <stddef.h>
#include <sys/types.h>
#endif
.
wq fsys_ufs2.c
EOF
}
cd ..
cd lib/
[ ! -f device.c.old ] && {
cp device.c device.c.old
cat << EOF | ed || true
r device.c
501c
void show_warning (int no, const char *msg, ...)
.
496c
void show_error (int no, const char *msg)
.
wq device.c
EOF
}
cd ..
cd grub/
[ ! -f asmstub.c.old ] && {
cp asmstub.c asmstub.c.old
cat << EOF | ed || true
r asmstub.c
942c
int _llseek (uint filedes, ulong hi, ulong lo,
.
118c
volatile void doit ()
.
93c
int console_current_color = A_NORMAL;
.
wq asmstub.c
EOF
}
cd "$pwd/"
;;
esac
grub sets up CPU memory model and loads kernel, possibly copying kernel params to a well known space in memory. this may include copying an initrd to memory and including the pointer in the kernel bootstrap memory area. initrd is made by mk-initrd(1)
but you should never confuse that with "grub hot-edits only debian specific initrd and then copies this modified initrd to kernel memory". that's just a horrid thing even if grub could do it. anyway the initrd (and certain kernel debug features if allowed) allow one a way to get an (cmdline,gui) interface before all modules load (if that's even possible on some given hw: on some, absolutely NOT)
# -----------------------------------------
case $foo in
grub-0.95)
CFLAGS="`echo "$CFLAGS" | awk '{sub("-march[^ ]*","");print}'`"
CFLAGS="`echo "$CFLAGS" | awk '{sub("-O2","");print}'`"
CFLAGS="$CFLAGS -O0 -march=$lCPU"
CXXFLAGS="`echo "$CXXFLAGS" | awk '{sub("-march[^ ]*","");print}'`"
CXXFLAGS="`echo "$CXXFLAGS" | awk '{sub("-O2","");print}'`"
CXXFLAGS="$CXXFLAGS -O0 -march=$lCPU"
opt="`echo "$opt" | awk '{sub("--disable-dependency-tracking","");print}'`"
export CFLAGS CXXFLAGS
# optional allows remote img boot (note: need a complex img + tftp or bootp)
# a few popular see ./configure for list of (old) eth card compat
# opt="$opt --enable-rtl8139 --enable-ne --enable-eepro100" # isa port addr
opt="$opt --enable-rtl8139 --enable-eepro100"
cd "$dir/"
cd netboot/
[ ! -f main.c.old ] && {
cp main.c main.c.old
cat << EOF | ed || true
r main.c
59c
unsigned char *end_of_rfc1533 = NULL;
.
57c
struct bootpd_t bootp_data;
.
wq main.c
EOF
}
for x in osdep.h
do
[ ! -f $x.old ] && {
cp $x $x.old
cat << EOF | ed || true
r $x
/linux-asm-io.h/
.,.d
.a
/* not in orig (maybe not linux build) and doesnt work on newer gnu/linux */
#include <features.h>
#if defined(__linux__) && defined(__GLIBC__) && __GLIBC__ <= 1
/* #include "linux-asm-string.h" unsure why never used but present */
#include "linux-asm-io.h"
#warning "# non-glibc linux-old io.h #"
#endif
#if defined(__GLIBC__) && __GLIBC__ > 1
#warning "# gnu sys/io.h #"
#include <sys/io.h>
#endif
.
wq $x
EOF
}
done
[ ! -f timer.h.old ] && {
cp timer.h timer.h.old
cat << EOF | ed || true
r timer.h
57,62c
extern inline int timer2_running(void);
extern inline void waiton_timer2(unsigned int ticks);
.
52,55d
wq timer.h
EOF
}
[ ! -f timer.c.old ] && {
cp timer.c timer.c.old
cat << EOF | ed || true
r timer.c
21a
inline int timer2_running(void)
{
return ((inb(PPC_PORTB) & PPCB_T2OUT) == 0);
}
inline void waiton_timer2(unsigned int ticks)
{
load_timer2(ticks);
while ((inb(PPC_PORTB) & PPCB_T2OUT) == 0)
;
}
.
wq timer.c
EOF
}
cd ..
cd stage2/
# gcc no long has option -fwritable-strings
[ ! -f Makefile.in.old ] && {
cp Makefile.in Makefile.in.old
cat << EOF | ed || true
r Makefile.in
%s/fwritable-strings/DFOO_IGNORE_ME/
wq Makefile.in
EOF
}
[ ! -f builtins.c.old ] && {
cp builtins.c builtins.c.old
cat << EOF | ed || true
r builtins.c
3515c
int find_ascii_code (char *key)
.
3498c
int find_key_code (char *key)
.
1766c
void disk_read_blocklist_func (int sector, int offset, int length)
.
1750c
void disk_read_savesect_func (int sector, int offset, int length)
.
591c
int color_number (char *str)
.
144c
void disk_read_blocklist_func (int sector, int offset, int length)
.
wq builtins.c
EOF
}
# should not matter if static or global (unsued except here)
# however author had marked as global someone revised it to differ with .h decl
[ ! -f smp-imps.c.old ] && {
cp smp-imps.c smp-imps.c.old
cat << EOF | ed || true
r smp-imps.c
256,260c
int imps_enabled = 0;
int imps_num_cpus = 1;
unsigned imps_lapic_addr = ((unsigned) (&lapic_dummy)) - LAPIC_ID;
unsigned char imps_cpu_apic_map[IMPS_MAX_CPUS];
unsigned char imps_apic_cpu_map[IMPS_MAX_CPUS];
.
252c
int imps_any_new_apics = 0;
.
wq smp-imps.c
EOF
}
[ ! -f char_io.c.old ] && {
cp char_io.c char_io.c.old
cat << EOF | ed || true
r char_io.c
1192c
int end_addr (void)
.
1181c
int start_addr (void)
.
wq char_io.c
EOF
}
# assume if present defines the usual, ie __int8_t
[ ! -f ufs2.h.old ] && {
cp ufs2.h ufs2.h.old
cat << EOF | ed || true
r ufs2.h
76a
#endif /* _BITS_TYPES_H */
.
66a
#endif /* STDINT_H */
#ifndef _BITS_TYPES_H
.
49a
#ifndef _STDINT_H
.
wq ufs2.h
EOF
}
[ ! -f fsys_ufs2.c.old ] && {
cp fsys_ufs2.c fsys_ufs2.c.old
cat << EOF | ed || true
r fsys_ufs2.c
58a
#if defined(__GLIBC__) && __GLIBC__ > 1
#include <stdint.h>
#include <stddef.h>
#include <sys/types.h>
#endif
.
wq fsys_ufs2.c
EOF
}
cd ..
cd lib/
[ ! -f device.c.old ] && {
cp device.c device.c.old
cat << EOF | ed || true
r device.c
501c
void show_warning (int no, const char *msg, ...)
.
496c
void show_error (int no, const char *msg)
.
wq device.c
EOF
}
cd ..
cd grub/
[ ! -f asmstub.c.old ] && {
cp asmstub.c asmstub.c.old
cat << EOF | ed || true
r asmstub.c
942c
int _llseek (uint filedes, ulong hi, ulong lo,
.
118c
volatile void doit ()
.
93c
int console_current_color = A_NORMAL;
.
wq asmstub.c
EOF
}
cd "$pwd/"
;;
esac
Re: GRUB2 / Jessie looks like it will show boot options for
little hack??? a little longer than i remember. but it was easy.
Re: GRUB2 / Jessie looks like it will show boot options for
the above hack allows grub-0.95 (alpha source, gnu) to build without error give debian squeeze based build toolchain (gcc 4.4.5, glibc 2.11.2)
note how grub sugg. not building all network modules, only the ones needed/used because some may be buggy, and "have all known support" would bust the boot limit constraints of older BIOSes?
note how grub sugg. not building all network modules, only the ones needed/used because some may be buggy, and "have all known support" would bust the boot limit constraints of older BIOSes?