Tag Archives: operating system

Virtual machine failed to start network service error: ob for network.service failed because the control process exited with error code

About CentOS 7 virtual machine startup network service startup failure: ob for network service failed because the control process exited with error code

As shown in the following figure:


When using CentOS 7 system, after changing the static IP, it is found that the network service cannot be restarted, and after using the IP addr or ipconfig command, it is found that the changed static IP address is not displayed and mysteriously disappears. The connection to the external network is also different, and the Ping is blocked.

Error reason:

There is a conflict between NetworkManager and Network, there are two network management tools on CentOS system, NetworkManager and Network, if both of them are configured, it will cause a conflict between them. As we usually use Network to configure our virtual machine static ip address, but sometimes our improper operation will cause NetworkManager to configure automatically, so there is a conflict between the two. Possible reasons for this are: we shut down the virtual machine without shutting it down first or we don’t use the poweroff command to shut down the machine.


Just turn off the NetworkManager service directly, that is, carry out the following steps:
solution 1:
①, service NetworkManager stop # turn off the NetworkManager service
②, chkconfig NetworkManager off # prohibit startup
③ restart the system

solution 2:
② Choose one of the following commands: (a temporary modification, a permanent modification)
systemctl stop networkmanager # temporarily close the service
systemctl disable networkmanager # permanently close the service
② restart the system


[Solved] Ubuntu Error: PCIe Bus Error:severity=Corrected, type=Physical Layer, id=00e8(Receiver ID)

Reason for error reporting: it is probably caused by imperfect peripheral driver under Ubuntu

Solution: modify the grub file as follows

# Open the grub file with sudo privileges
sudo -H gedit /etc/default/grub

# Modify the GRUB_CMDLINE_LINUX_DEFAULT parameter
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi pci=noaer pcie_aspm=off"

# save and quit

# update grub
sudo update-grub

# restart

[Solved] Windows startup error: unable to find launcherrsxruntime.exe

Problem phenomenon:

The win10 system will report the following error after each restart,

Windows cannot find the file

C:\Program Files\WindowsApps\AdvancedMicroDeviceslnc-2.AMDRad… launcherrsxruntime.exe

Cause of problem:

It is estimated that the file in AMD’s driver is damaged due to what software is installed or abnormal startup


Use AMD’s own driver management software to repair it (effective through personal test). The repair steps are as follows:

Press wins + I to enter Windows settings –> Application –> Applications and functions–> AMD Radeon Software –> Advanced options –> Repair

Restart verification after repair

Note: the above solutions are not necessarily applicable to all situations. If they cannot be solved, you can try to upgrade the driver or reinstall the driver.

MAC: How to Solve VirtualBox cannot open Issues

Mac solves the problem that VirtualBox cannot open and reports an error

You must specify a machine to start, using the command line.


Open MAC terminal
1. cd to the directory where VBox is installed
2. VBoxManage list vms lists virtual machine directories
3. VirtualBoxVM –startvm (space) + the number of the virtual machine you want to open

So you can open it

Unable to boot : please use a kernel appropriate for your cpu

Suppose you get this message in the VirtualBox:

                  Unable to boot – please use a kernel appropriate for your CPU

The following solutions can help you:

1. Restart your computer and enter the BIOS. There are options such as virtualization technology. Let it choose enable

Assuming this doesn’t solve your problem, try another way.

2. Enter the settings of VirtualBox, click system, and select enable PAE/NX, as shown in the figure:

3. This prompt may also be that you are running a 64 bit operating system and the processor is not compatible. Just download 32-bit instead of 64 bit.

Reproduced in: https://www.cnblogs.com/mengfanrong/p/5217029.html

How to Solve BFSVC Error: Could not open the BCD template store.

Specific errors are as follows:

BFSVC Error: Could not open the BCD template store.Status=[c000000f]

In Baidu know to answer the question, encounter a netizen Win10 computer into the system, prompt BCD error.
Reset the BCD, go to troubleshooter, advanced options, command prompt, execute:

bootrec /rebuildbcd

The result is no good, prompt system cannot find the specified path. (The problem cannot be restored later, so it cannot be tested)
Execute diskPart and know GPT mode from list disk. Sel disk 0, List Part. Sel Part 1, assign letter Z, assign letter Z, assign letter Z.
The most important step is to make sure the Windows directory is on drive C by switching to Drive C, dir/A. So execute:

bcdboot c:\windows /s z: /f uefi /l zh-cn

Status=[c000000f] BFSVC Error: Could not open the BCD template store.status =[c000000f]
In this case, you can follow it with/V to see the details. At that time, I thought there was a problem with the BCD-Template file.
Because the general system files, WinSXS have relevant backup, so execute:
CD C :\ Windows \ System32 \ Configren BCD-BAK, I can restore CD C :\ Windows \ Winsxscd * bcdTemplate * if necessary. This is the path I found by searching everything on my computer. Because the folder name is too long, I use the wildcard instead. copy bcd-template c:\windows\system32\config

This method may not work on some Win10, because winSXS bCD-Template may not be a registry file, win7 is a registry file, users can also win10 computer.
will not work, if you want to use the bcdboot command to fix it, you can only copy the bcd-template from the config directory on the same system computer to your own computer.

Net friend executes above command while, I also search relevant data on the net.
Some netizens said, bCD-Template is out of order, using SFC to repair, win10 tested SFC does not support to repair the file. Others said that they had the same problem and that they had mixed up \ and/or.
Seeing this, I went back to see the user executed the command, sure enough, “Bcdboot c:/ Windows…” “To” Bcdboot c:\ Windows…” Command executed successfully! After restarting, the system can enter normally.
So, you can’t take these punctuation marks lightly.

Ubuntu “a user name is not in the sudoer folder. It will be reported. ” Solutions for

If the user name was not created when the system was installed, this problem occurs when using the sudo command.

Solution: input


Enter the root password. If you have not set the root password before, please visit the URL settings.
http://blog.csdn.net/baidu_ 27280587/article/details/53285620

After entering the successful root environment, enter

gedit /etc/sudoer

After opening the file, find the


In this line, add the same line below it, and change root to your user name. Save and close the file, and then use the sudo command, no more errors will be reported.

Nucleus plus protection mechanism (based on ARM processor)

(Nucleus Plus is a non open source operating system, only limited code is provided for reference)

1. Nucleus plus protection mechanism

Nucleus plus kernel uses TC for small code protection_ Protect only in TC_ The interrupt is only turned off during protect operation, so the interrupt response and scheduling of Nucleus Plus kernel is more timely than that of μ C/os-iii and ThreadX; mutex is only used for applications (mutex between threads).

TC_ Protect contains two members. One record gets TC_ Thread pointer TC of protect_ tcb_ Another mark is whether there is a thread waiting for TC_ The variable TC of protect_ thread_ waiting。

2、TC_ Protect acquisition (TCT)_ Protect)

Off interrupt

1624         MRS     r1,CPSR                     // Pickup current CPSR
1625         ORR     r1,r1,#LOCKOUT              // Place lockout value in
1626         MSR     CPSR_cxsf,r1                     // Lockout interrupts

Check TC_ Is protect occupied (check TC_ tcb_ Whether the pointer is empty; if it is not occupied, jump to TCT_ Protect_ Available, set TC_ tcb_ The pointer is the pointer of the current thread, and you can turn on the interrupt again. If it is occupied, you will check whether it is occupied. It is similar to the spin lock of Linux kernel, but Nucleus Plus is single core, so the current thread needs to switch out of the CPU.)

1632 TCT_Protect_Loop:
1633         LDR     r1,[r0, #0]                 // Pickup protection owner field
1634         CMP     r1,#0                       // Is there any protection?
1635         BEQ     TCT_Protect_Available       // If NU_NULL, no current protection

Set TC_ thread_ Waiting is 1 (indicates that there is a thread waiting for TC)_ PROTECT)

1642         MOV     r2,#1                       // Build thread waiting flag
1643         STR     r2,[r0, #4]                 // Set waiting field

If TC_ Protect is occupied. Save the context of the current thread and call TCT_ Schedule_ Protected scheduling takes up TC_ Thread of protect (the current thread is the thread with the highest priority and occupies the TC_ The thread of protect has a lower priority. If you don’t actively schedule the thread of low priority, the thread of low priority will never be able to execute, TC_ Protect will never be released)

1648         STR     r0,[sp, #-4]!               // Save r0 on the stack
1649         STR     lr,[sp, #-4]!               // Save lr on the stack
1650         MOV     r0,r3                       // Place current thread into r0
1651         BL      TCT_Schedule_Protected      // Call routine to schedule the
1652                                             // owner of the thread

3、TC_ Protect release (TCT)_ Unprotect)

Check TC_ thread_ Whether waiting is 0. If it is 0, no thread is waiting for TC_ Otherwise, there are higher priority threads waiting for TC_ PROTECT(TC_ There is no interrupt in the process from the acquisition of protect to the release of TC_ Before protect, a higher priority thread may be ready to apply for the same TC_ If there is no thread waiting for TCT_ Unprotect, simply set TC_ tcb_ If the pointer is empty, turn on the interrupt; otherwise, call TCT_ Control_ To_ System rescheduling (waiting for TCT)_ The unprotected thread may not be the thread with the highest priority at this time, but the scheduler obtains the highest priority ready thread for execution;

TCT_ Control_ To_ System checks whether the time slice of the current thread is used up; if it is not used up, it will continue to execute the current thread (to avoid frequent thread switching, so TCT is called)_ Control_ To_ TC is not set before system_ tcb_ If the time slice is used up, set TC_ tcb_ Pointer is empty, TC_ thread_ Waiting is 0 (wait for TC before)_ The thread released by protect is no longer waiting for TC_ Protect. After the thread is scheduled, it returns to TCT_ Protect_ Loop is equivalent to calling TCT again_ Protect, reacquire lock (wait for TC for some reason)_ Thread released by protect is suspended, TC_ thread_ The waiting flag cannot always be set to 1, otherwise other threads will release TC_ When protect, it will mistakenly think that there is a thread waiting for TC_ Protect release), call TCT_ Schedule selects the highest priority ready thread for execution. (thread scheduling reference) https://blog.csdn.net/arm7star/article/details/105565769 “NucleusPLUS interrupt processing (based on ARM processor)”

1783         LDR     r2,[r0, #4]                 // Pickup thread waiting flag
1784         CMP     r2,#0                       // Are there any threads waiting?
1785         BEQ     TCT_Not_Waiting_Unpr        // If not, just release protection

4. Summary

To some extent, the protect mechanism of nucleus plus can be regarded as priority inversion, that is, high priority threads give up CPU to low priority threads. Nucleus plus does not implement dynamic priority, and protect avoids deadlock.


WSS connection server error


1. The error prompt for SSL certificate rejection is different between Firefox and chrome

(1) Chrome error: websocket connection failed: error in connection establishment: Net:: err_ CERT_ AUTHORITY_ INVALID

(2) an error is reported in Firefox: it is unable to create a wss://www.wss.com/ Connection to the server.

2. Although the error prompts for SSL certificate rejection are different between Firefox and chrome, the solution steps are exactly the same.



1 var ws = new WebSocket("wss://www.wss.com");


Cause of the problem:

Because the certificate is self signed, the CA of the certificate must not exist in the root storage area of the operating system. Naturally, the operating system will not recognize you, and the natural browser will not recognize you, that is, the self signed certificate is not trusted.



1. Open a new tab page in Firefox or chrome.

2. Visit your websocket server domain name: https://www.wss.com (change the WSS request to an HTTPS request with the same domain name and port number).

3. You will find the browser alarm: “your connection is not private connection…”.

Don’t panic, look down and click “advanced”.

5. Continue to click “continue to” www.wss.com (unsafe) “.

6. The page will prompt “400 bad request…”, don’t worry. This is due to using HTTP protocol to access WSS service. Don’t worry. You can solve the prompt error here.


Reprinted from: http://www.blogdaren.com/post-2456.html?from=singlemessage

Reproduced in: https://www.cnblogs.com/XuYuFan/p/10917909.html

Solving windows error: [error 87] classification: problem summary

Today’s implementation B= webdriver.Firefox () is an error report. My version is 19.0 for Firefox and 2.37 for selenium.

In the following two cases: A, B,

All of them are caused by the incompatibility between the firebox version and selenium version http://docs.seleniumhq.org/about/platforms.jsp Page to view the version information of Microsoft supported by selenium

(it is found that selenium does not support firebox version 19.0)


Traceback (most recent call last):

  File “C:\Users\tomet\Desktop\a.py”, line 10, in <module>

    b =  webdriver.Firefox ()

  File “C:\Python27\lib\site-packages\selenium\webdriver\firefox\ webdriver.py “, line 59, in __ init__

     self.binary , timeout),

File “C:\Python27\lib\site-packages\selenium\webdriver\firefox\extension_ connection.py “, line 47, in __ init__

     self.binary.launch_ browser( self.profile )

  File “C:\Python27\lib\site-packages\selenium\webdriver\firefox\firefox_ binary.py “, line 61, in launch_ browser

    self._ wait_ until_ connectable()

  File “C:\Python27\lib\site-packages\selenium\webdriver\firefox\firefox_ binary.py “, line 105, in _ wait_ until_ connectable

     self.profile.path , self._ get_ firefox_ output()))

WebDriverException: Message: “Can’t load the profile. Profile Dir: c:\\users\\chengh~1.qun\\appdata\\local\\temp\\tmpqdnfky Firefox output: *** LOG  addons.xpi : startup\r\n*** LOG  addons.xpi : Skipping unavailable install location app-system-local\r\n*** LOG  addons.xpi : Skipping unavailable install location app-system-sha re\r\n*** LOG  addons.xpi : checkForChanges\r\n”


startupinfo() error 87

Copyright notice: This article is the original article of the blogger and cannot be reproduced without the permission of the blogger.

Reproduced in: https://www.cnblogs.com/think1988/p/4627912.html