The invention discloses an embedded system software upgrading method and a system. The method includes the following steps that three files of a first boot loader, a first Linux kernel and a first file system are sequentially programmed by a programmer to a blank flash memory, and simultaneously the programmer performs a bad block check; a target board is automatically restarted to enter a Linux system, and a computer and a mobile storage device are connected; the first boot loader, the first Linux kernel and the first file system are automatically copied to a memory, and contents in the flash memory are erased; and the mobile storage device is mounted, then a second boot loader, a second Linux kernel and a second file system are sequentially programmed into the flash memory, and simultaneously the bad block check is performed until the programming is completed. The embedded system software upgrading system for implementing the method is further disclosed. According to the embedded system software upgrading method and the system, the bad block management can be achieved under the support of Linux file systems, various common types of file systems such as Cramfs, Yaffsx, Jffsx and the like can be programmed, and all steps can be automatically completed.