标签: boot

对内核的争论

内核是否需要从引导加载程序获取内容.通常内核能够从头开始构建系统,那么为什么它需要来自boot-loader的任何内容?我从内核看过这样的启动消息.

"Fetching vars from bootloader... OK"
Run Code Online (Sandbox Code Playgroud)

那么变量到底是什么?如何从引导加载程序传递变量?是通过堆栈?

linux boot bootstrapping linux-kernel bootloader

6
推荐指数
1
解决办法
3000
查看次数

如何开发可从软盘启动的Amiga应用程序(NON-DOS)?

继续" 如何编写和编译Amiga应用程序? "问题,需要哪个开发库才能从软盘启动Amiga应用程序?

更新:(2012-04-10)为了解决问题的解决,我编辑了标题和正文,只关注图书馆.仍然缺少从软盘部署工具启动,可以在另一个问题中询问.

boot floppy retro-computing amiga

6
推荐指数
1
解决办法
2890
查看次数

有没有办法启动用托管语言编写的代码?

问题就是这一切.我可以将C#编译为本机代码并启动它吗?我知道宇宙和奇点,但我想知道是否有更新的技术或工具.谢谢.

c# boot

6
推荐指数
1
解决办法
468
查看次数

udev:设备在启动时连接

我正在使用udev来检测我的Ubuntu 10.04 LTS x64服​​务器上的USB驱动器连接和断开连接.当机器运行时连接USB设备时,一切正常,但如果在启动时已经存在,我的脚本无法完成,显然是因为mkdir /tmp/blah不起作用.

如果我随后sudo udevadm trigger在终端打字,一切都还好.

我假设在udev首先根据其规则评估连接的设备时,根文件系统尚未安装.

因此,我的问题是:

  1. 我是否正确识别了问题?
  2. 有没有一种标准的方法可以解决它 - 也就是说/tmp/,在/安装之前和之后我可以使用它的替代品吗?

linux ubuntu boot udev

6
推荐指数
1
解决办法
3325
查看次数

GRUB stage 1.5的代码驻留在磁盘上的位置是什么?它加载的地址是什么?

我已经grub v1.98安装并在拆解MBR后发现以下我不理解的代码片段:

xor ax,ax
mov [si+0x4],ax
inc ax
mov [si-0x1],al
mov [si+0x2],ax
mov word [si],0x10
mov ebx,[0x7c5c]
mov [si+0x8],ebx
mov ebx,[0x7c60]
mov [si+0xc],ebx
mov word [si+0x6],0x7000
mov ah,0x42
int 0x13
Run Code Online (Sandbox Code Playgroud)

看来这段代码试图设置阶段1.5代码的磁盘地址,然后加载并运行它.但是,我怎么能弄清楚它试图读取哪个物理块?更重要的是,舞台1.5代码的目的地是什么?0x7000

我指的是Windows 7的MBR,其中加载了后续的启动代码0x7c00.鉴于MBR首先被装载在地址0x7c00,它包含了一段代码从复制MBR 0x7c000x0600,然后分支到0x0600在壳体的原代码损坏.将加载阶段1.5代码解决0x7000冲突的原始代码?更重要的是,我还发现:

jmp short 0x65
nop
sar byte [si+0x7c00],1
mov es,ax
mov ds,ax
mov si,0x7c00
mov di,0x600
mov cx,0x200
cld
rep movsb
push ax
push word 0x61c
retf
Run Code Online (Sandbox Code Playgroud)

在MBR的开头.似乎代码尝试执行与Windows 7的MBR中相同的操作来将原始MBR复制0x7c000x0600 …

linux boot grub

6
推荐指数
1
解决办法
2320
查看次数

如何在启动时运行命令?

我试图找出如何在启动时运行命令,就像我将其键入控制台一样.我在Raspberry Pi中使用Rasbian,但我认为这个问题对于Debian来说是一样的.我正在尝试运行的命令是:

sudo screen mono server.exe
Run Code Online (Sandbox Code Playgroud)

我尝试了以下解决方案,但由于我刚开始使用Linux,我不确定这是否正确.

 #! /bin/sh
# /etc/init.d/server

### BEGIN INIT INFO
# Provides:          server
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Simple script to start a program at boot
# Description:       ..
### END INIT INFO

# If you want a command to always run, put it here
sudo screen mono server.exe    

exit 0
Run Code Online (Sandbox Code Playgroud)

boot debian command startup raspberry-pi

6
推荐指数
2
解决办法
2万
查看次数

如何在解压缩失败时找到ARM Linux入口点?

我试图通过U-boot在i.MX6的自定义板上启动Linux(CPU内核是ARM Cortex A9)

我们似乎成功移植了Das U-Boot(2009.08).但是在最后的U-Boot消息中启动Linux失败:"启动内核......"

这是我的相关环境:

bootargs=console=ttymxc1,115200 vmalloc=400M root=/dev/mmcblk0p1 rootwait consoleblank=0 earlyprintk video=mxcfb0:dev=lcd,LCD-ORTUS,if=RGB24 video=mxcfb1:dev=hdmi,1280x720M@60,if=RGB24 calibration tsdev=tsc2004 fbmem=10M,28M
bootcmd=ext2load mmc 0:1 10800000 /boot/uImage ; bootm 10800000
Run Code Online (Sandbox Code Playgroud)

启动输出是

Loading file "/boot/uImage" from mmc device 0:1 (xxa1)  
4043552 bytes read  
## Booting kernel from Legacy Image at 10800000 ...  
   Image Name:   Linux-3.0.35  
   Image Type:   ARM Linux Kernel Image (uncompressed)  
   Data Size:    4043488 Bytes =  3.9 MB  
   Load Address: 10008000  
   Entry Point:  10008000  
   Verifying Checksum ... OK  
   Loading Kernel Image ... OK  
OK  

Starting …
Run Code Online (Sandbox Code Playgroud)

boot arm linux-kernel embedded-linux u-boot

6
推荐指数
1
解决办法
1万
查看次数

android模拟器永远发布

我想建立一个Android模拟器,我下载了android 4.4(kitkat),工具和所有额外的

模拟器永远加载,它已经加载了2个小时,android启动启动徽标并不滞后,所以模拟器并不慢.

我重启了多次,尝试了不同的设备

我的模拟器:设备:10.1"WGXA(平板电脑)(1280 x 800:mdpi)目标:android 4.4 - API级别19 CPU:ARM(armeabi-v7a)<---无法更改此内存选项:RAM:768 VM堆: 32内部存储:4096仿真选项:使用主机GPU

电脑规格:4.2GHz 8核cpu 4GB内存和更多

如果我查看任务管理器,它使用15%cpu,470MB RAM和0MB磁盘速度

boot android emulation android-emulator

6
推荐指数
1
解决办法
9939
查看次数

grubby致命错误:无法找到合适的模板

所以我yum -y update kernel在AWS EC2基础映像上升级了内核,得到以下内容:

Running Transaction
  Installing : kernel-2.6.32-504.3.3.el6.x86_64
grubby fatal error: unable to find a suitable template
Run Code Online (Sandbox Code Playgroud)

这是/boot/grub/grub.conf的内容:

default=0
timeout=0
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
Run Code Online (Sandbox Code Playgroud)

所以grub.conf没有得到更新,因为我已经安装了kernel-2.6.32-504.1.3.el6.x86_64,所以上次更新内核时grub没有得到更新.我尝试手动添加内核:

grubby --grub --add-kernel="/boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs \
  console=ttyS0" --title="CentOS (2.6.32-504.3.3.el6.x86_64)" \
  --initrd=/boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
Run Code Online (Sandbox Code Playgroud)

然后/boot/grub/grub.conf看起来像这样:

default=0
timeout=0
hiddenmenu
title CentOS (2.6.32-504.3.3.el6.x86_64)
        kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=LABEL=rootfs console=ttyS0
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
Run Code Online (Sandbox Code Playgroud)

但是,/vmlinuz-2.6.32-504.3.3.el6.x86_64不是我输入的内核.所以我删除了它并再次尝试:

grubby --grub …
Run Code Online (Sandbox Code Playgroud)

linux boot kernel grub

6
推荐指数
0
解决办法
7129
查看次数

在早期启动过程中加载OS X kext

我有一个工作的OSX内核扩展,我希望尽早在启动时自动加载.kext使用KAUTH来监视特定路径上的访问,所以在我看来,没有任何东西可以请求将它加载到内核中.在这种情况下,复制它/Library/Extensions(至少从Yosemite这是第三方扩展的推荐路径)将无法解决我的问题.

是否有可能通过修改代码或通过某些辅助配置来实现此目的?

我已经阅读过使用launchd守护进程来使用kextload来加载扩展,如本问题所述,但在我的情况下,我希望尽早加载它.

更新:
我正在使用"通用"内核扩展(链接到BSD库)而不是基于I/O Kit的内核扩展.
我想在launchd开始之前加载我的扩展程序.

macos boot kernel kernel-extension

6
推荐指数
1
解决办法
3122
查看次数